Hi everyone!
I am creating a simple webapp using django where a user can login, choose one of the given category and create a post under the chosen category.
I am having trouble in creating a post. When I create a new post through django form the date isn't saved to database. I log in to the django-admin to check if the post is created but the 'post' table remains empty.
Here are the necessary code snippets:
"Category model"
class Category(models.Model):
name = models.CharField(max_length=128,unique=True)
slug = models.SlugField()
def save(self,*args,**kwargs):
self.slug = slugify(
self.name)
super(Category,self).save(*args,**kwargs)
def __unicode__(self):
return
self.name "Post Model"
class Post(models.Model):
category = models.OneToOneField(Category,default='category')
title = models.CharField(max_length=128,null=True)
content = models.TextField(blank=True,null=True)
def __unicode__(self):
return self.title
"Postform/forms.py"
class PostForm(forms.ModelForm):
title = forms.CharField(max_length=128)
content = forms.CharField(widget=forms.Textarea)
class Meta:
model = Post
fields = ('title','content')
"create_post function/views.py"
def create_post(request,category_name_slug):
created = False
instance = get_object_or_404(Category,slug=category_name_slug)
if request.method == 'POST':
form = PostForm(data=request.POST or None,instance=instance)
if form.is_valid():
post = form.save(commit=False)
post.save()
created = True
else:
print form.errors
else:
form = PostForm()
context={
'form':form,
'instance':instance,
'created':created
}
return render(request,"add_post.html",context)
Any solution??