0
我有models.py如下:不採取值外鍵的django殼
class category(models.Model):
cid=models.IntegerField(unique=True,default=0)
cname=models.CharField(max_length=20)
def __unicode__(self):
return self.cid,self.cname
class Meta:
db_table="category"
class cateledetails(models.Model):
cdid=models.IntegerField(unique=True,default=0)
cid=models.ForeignKey(category,to_field='cid',on_delete=models.CASCADE)
elename=models.CharField(max_length=20)
imgsrc=models.ImageField(upload_to='elements/',blank=True)
def __unicode__(self):
return self.cdid,self.elename
class Meta:
db_table="cateledetails"
,我已在殼B =類別(CID = 1,CNAME = '動物') b條目.save()
接下來我嘗試輸入一個進入cateledetails表,並提供了以下錯誤:
蟒蛇manage.py殼
Python 2.7.8 (default, Jun 30 2014, 16:08:48) [MSC v.1500 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
(InteractiveConsole)
>>> from django.models import category,cateledetails
Traceback (most recent call last):
File "<console>", line 1, in <module>
ImportError: No module named models
>>> from student.models import category,cateledetails
>>> b=category.objects.get(pk=1)
>>> b.cid
1
>>> q=cateledetails(cdid=1,cid=1,'dog')
File "<console>", line 1
SyntaxError: non-keyword arg after keyword arg
>>> q=cateledetails(cdid=1,cid=1,elename='dog')
Traceback (most recent call last):
File "<console>", line 1, in <module>
File "C:\Python27\lib\site-packages\django\db\models\base.py", line 468, in __init__
setattr(self, field.name, rel_obj)
File "C:\Python27\lib\site-packages\django\db\models\fields\related.py", line 627, in __set__
self.field.rel.to._meta.object_name,
ValueError: Cannot assign "1": "cateledetails.cid" must be a "category" instance.
爲什麼會產生這個錯誤?