Whenever I submit my form, the data is added to the database but I am getting an error
ImproperlyConfigured at /issue/new/ No URL to redirect to. Either provide a url or define a get_absolute_url method on the Model. Even though I already have a get_absolute_url in my model
EDIT: The above is when the form is valid, when the form is invalid, I get
TemplateResponseMixin requires either a definition of 'template_name' or an implementation of 'get_template_names()' model:
class Issue(models.Model): CATEGORIES = ( ('A', 'Asd'), ('B', 'Bd'), ('C', 'Cu'), ('D', 'Cr'), ) title = models.CharField(max_length=140) description = models.TextField() author = models.ForeignKey(User) category = models.CharField(max_length=1, choices=CATEGORIES) date_created = models.DateTimeField(auto_now_add=True) def get_absolute_url(self): return reverse('issue_detail', kwargs={'pk': self.pk}) def __unicode__(self): return self.title form:
class IssueForm(forms.ModelForm): class Meta: model = Issue fields = ('title','description', 'category',) view
class IssueCreateView(CreateView): form_class = IssueForm def form_valid(self,form): obj = form.save(commit=False) obj.author = self.request.user obj.save() return HttpResponseRedirect(self.get_success_url()) url
url(r'^new/', IssueCreateView.as_view(), name='issue_create'), template
<form action="/issue/new/" method="post"> {% csrf_token %} {{ issueform.as_p }} </form>
IssueCreateView.as_view(), try passing thesuccess_url- like this:IssueCreateView.as_view(success_url=reverse('url-name-here')))url-name-herewith the success URL nametemplate_nameclass-level constant, just like the error tells you to. Like in the examples in the documentation