繁体   English   中英

Django错误与ForeignKey参考

[英]Django error with ForeignKey reference

我对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管理员中的“添加票证交易者”界面时,出现一条错误消息:

用户匹配查询不存在。

获取行366中的Python27 \\ lib \\ site-packages \\ django \\ db \\ models \\ query.py

在模板\\ grappelli \\ templates \\ admin \\ includes \\ fieldset.html中,第19行出现错误

我想要得到的是:在ticketTrader表的“ inscription”列中,获取“ Inscription”表的唯一ID(pk)的值。

或“ inscriptionKey”的值,但我认为这是不可能的。

Django版本:1.4 / Python版本:2.7.3 /南最后一个版本

谢谢你的帮助 :)

我只能猜测:

TicketsTrader有一个用于Inscription的外键,它具有一个用于User的外键,并在其__unicode__()方法中使用了该键。

现在,我不知道Grapelli,但是默认的管理应用程序将在“添加票证交易者”页面上为Inscription-s下拉列表。 如果某些Inscription -s指向不存在的User -s,则其__unicode__()方法将失败,并显示您指定的错误消息。

问题是,某些User可能会丢失,而Inscription没有指向他们。 好吧,如果使用例如MySQL + MyISAM,则不会在其中强制使用外键,因此会发生各种奇怪的事情。

我认为是因为您没有任何用户...在创建票务商之前尝试创建用户

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM