while learning Django to do web programming,I faced this problem. I searched Google and Django's official website biut could not find any answer. Please help me.
System environment:
- Fedora 18
- Python 2.7
- Django 1.5.1
- Eclipse + PyDev
Runtime: Django's development server
I have a models includes ManyToMany field.When I set value by django's admin panel,everything goes well. Codes below are all of my models:
class Posts(models.Model):
post_authorid = models.IntegerField(verbose_name=u'Authorid')
post_date = models.DateTimeField(auto_now_add=True,verbose_name=u'PostDate')
post_date_modified = models.DateTimeField(auto_now=True,verbose_name=u'LastModifiedTime')
post_content = models.TextField(verbose_name=u'Content')
post_title = models.CharField(max_length=50,verbose_name=u'Title')
post_name = models.CharField(max_length=50,blank=True,verbose_name=u'ShortName')
post_cover = models.CharField(max_length=200,verbose_name=u'CoverUrl')
post_introduction = models.CharField(max_length=500,blank=True,verbose_name=u'introduction')
post_status = models.ForeignKey(Status,verbose_name=u'status')
comment_status = models.BooleanField(verbose_name=u'show_comments')
post_password = models.CharField(max_length=20,blank=True,verbose_name=u'passwd')
post_tagid = models.ManyToManyField(Tags,verbose_name=u'tag')
post_threadtypeid = models.ForeignKey(ThreadTypes,verbose_name=u'ThreadType')
post_comment_conut = models.IntegerField(verbose_name=u'CommentsCount')
post_comments = models.ManyToManyField(Comments,blank=True,verbose_name=u'Comment')
def __unicode__(self):
return u"%s %s %s" % (self.id,self.post_title,self.post_date)
class Meta:
ordering = ['post_date']
class Tags(models.Model):
tagname = models.CharField(max_length=20,verbose_name=u'标签名称')
def __unicode__(self):
return u"%s %s" % (self.id,self.tagname)
class Meta:
ordering = ['id']
In my python shell,i input:
post = Posts()
post.post_tagid = Tags.objects.get(id='1')
then django rasise a http 500 error:
object needs to have a value for field "posts" before this many-to-many relationship can be used.
But,when i use :
post= Posts.objects.get(id='1')
Note- I have input the Posts object by Django admin
Then,when i use
post.post_tagid = Tags.objects.get(id='1')
everything goes well.
Q:How can i add a ManyToMany field without this error raising?