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??
-- 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??
You received this message because you are subscribed to the Google Groups "Django users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to django-users+unsubscribe@googlegroups.com.
To post to this group, send email to django-users@googlegroups.com.
Visit this group at https://groups.google.com/group/django-users.
To view this discussion on the web visit https://groups.google.com/d/msgid/django-users/cdf3882e-636e-4d2b-b626-6b60aaea9f5c%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.
No comments:
Post a Comment