【发布时间】:2012-06-24 21:03:13
【问题描述】:
我有一个关于 django 的 ForeignKey 引用问题的问题。
这是我的代码的一部分:
应用门票交易者
class TicketsTrader(models.Model):
seller = models.ForeignKey(User, related_name='ticketsTrader_seller')
buyer = models.ForeignKey(User, related_name='ticketsTrader_buyer')
inscription = models.ForeignKey(Inscription)
transactionCode = models.CharField(max_length=30,blank=False,null=False)
...
应用题字
class Event(models.Model):
title = models.CharField(max_length=75)
description = models.TextField()
...
class Inscription(models.Model):
event = models.ForeignKey(Event)
packs = models.ManyToManyField(PackChoise)
user = models.ForeignKey(User)
...
def __unicode__(self):
return self.event.__unicode__() + u': ' + self.user.__unicode__()
def inscriptionKey(self):
return str(self.pk) + '_' + str(self.valkey)
但是当我尝试访问 Grapelli 管理员中的“添加票务交易商”界面时,我收到一条错误消息:
用户匹配查询不存在。
Python27\lib\site-packages\django\db\models\query.py 在 get,第 366 行
在模板 \grappelli\templates\admin\includes\fieldset.html 中,错误 在第 19 行
我想要得到的是:在我的ticketTrader表的“inscription”列中获取我的“Inscription”表的唯一ID(pk)的值。
或“inscriptionKey”的值,但我认为不可能。
Django 版本:1.4 / Python 版本:2.7.3 / South 最后一个版本
感谢您的帮助:)
【问题讨论】:
-
你有
buyer = models.Field(...)。这应该是ForeignKey(...)。我猜这不在您的实际 model.py 代码中? -
哦,抱歉,这是将我的代码复制过去的错误,因为我正在尝试一些事情。我纠正它谢谢:)。但这不是造成问题的部分。但是没有这个错误,是的,这是我的实际 model.py。
-
啊,请修复您的
__unicode__方法。永远不要直接调用另一个对象的魔法函数——改用内置的unicode()函数。无论如何,你的方法应该只是return u'%s: %s' % (self.event, self.user)。 -
谢谢丹尼尔的提示:)我会检查的。
标签: python django foreign-keys admin