首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Django:示范问题

Django:示范问题
EN

Stack Overflow用户
提问于 2011-06-29 09:44:45
回答 2查看 222关注 0票数 0

你好,我想改变一下我的models.py。

我有两张桌子。客户和备注。我想要做的是在客户端表中有一个便笺字段,它应该与note表有某种一-一的关系。

然而,该便条将不得不存储一些用户,客户端和日期时间。所以我需要另一张桌子来做这个。但我想和客户建立一种关系。

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

models.py

代码语言:javascript
复制
   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)
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-06-29 09:57:56

朱斯蒂纳斯是对的。您应该在客户端模型中添加一个note字段,这会使Note模型上的FK过时。像这样的事情应该会让你开始:

代码语言:javascript
复制
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
票数 0
EN

Stack Overflow用户

发布于 2011-06-29 09:49:16

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

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6518647

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档