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.
为什么会产生这个错误?