【问题标题】:Django: model questionDjango:模型问题
【发布时间】:2011-06-29 09:44:45
【问题描述】:

您好,我想对我的 models.py 进行更改。

我有两张桌子。客户和注意。我想要做的是在客户表中有一个注释字段,它应该与注释表有一些一对一的关系。

然而,笔记必须存储一些用户、客户和日期时间。所以我需要另一张桌子来做这件事。但我想与客户和笔记建立一对一的关系。

一个客户应该只能存储在一个笔记中。一个便笺有一个用户、日期时间、一个便笺文本字段和客户端(如果我在客户表中有一个便笺字段,我认为我不需要此条目)。

models.py

   class Client(models.Model):
        name = models.CharField(max_length = 40)
        telephone = models.CharField(max_length = 20)
        website = models.URLField(verify_exists = False)
        fax = models.CharField(max_length = 20)
        email = models.EmailField()
        is_active = models.BooleanField()
        def __unicode__(self):
            return self.name

    class Note(models.Model):
        client = models.ForeignKey(Client)
        datetime = models.DateTimeField(default=datetime.now)
        user  = models.ForeignKey(User)
        note = models.TextField()

        def __unicode__(self):
            return unicode(self.user)

【问题讨论】:

    标签: python django models


    【解决方案1】:

    我不太明白这个问题,但我猜你需要OneToOneField

    【讨论】:

    • 我想要Client表中的note条目可以对应Note表。
    • @Shehzad009:请更新问题,提供更多信息。
    【解决方案2】:

    贾斯蒂纳斯是对的。您应该向您的 Client 模型添加一个 note 字段,这会使您的 Note 模型上的 FK 过时。这样的事情应该可以帮助您入门:

    class Note(models.Model):
        datetime = models.DateTimeField(default=datetime.now)
        user  = models.ForeignKey(User)
        note = models.TextField()
    
        def __unicode__(self):
            return unicode(self.user)
    
    class Client(models.Model):
        name = models.CharField(max_length = 40)
        telephone = models.CharField(max_length = 20)
        website = models.URLField(verify_exists = False)
        fax = models.CharField(max_length = 20)
        email = models.EmailField()
        is_active = models.BooleanField()
        note = models.OneToOneField(Note)
    
        def __unicode__(self):
            return self.name
    

    【讨论】:

    • 是的,这就是我要找的,谢谢。还有一个问题在mysql中,如果要在mysql中添加note = models.OneToOneField(Note)条目,如何使用alter table命令创建一对一的字段?
    • 您应该使用 syncdbSouth 来实现这一点。不要自己摆弄桌子。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-08-06
    • 2012-05-24
    • 2021-04-23
    • 2021-09-07
    • 2010-11-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多