Django模型关系

时间:2011-07-30 15:29:10

标签: django model



我有3个Django模型类:

1.客户 - 包含多个账单和送货地址

2.地址 - 可以是账单或送货地址

3.订单 - 包含对客户选择的1个客户,1个帐单地址和1个送货地址的引用。

如何创建一个将在管理页面中呈现的Order类,以便用户可以选择使用哪个送货地址?

Address类有一个名为name的属性,因此用户可以指定短名称,如“HQ”或“NY Branch”。我希望用户能够使用短名称从下拉列表中选择送货地址。我是一个缓慢的菜鸟。

更新

CODE

订单型号:

class Order(models.Model):
    customer = models.ForeignKey(Customer)        
    shipping_address = models.CharField(max_length=80)// Should be a drop list based on the customer above
    ...

客户模式:

class Customer(models.Model)
    name = models.CharField(max_length=80)    
    username = models.CharField(max_length=12)
    password = models.CharField(max_length=12)
    ...

    def __unicode__(self):
        return self.name

地址模型:

class Address(models.Model):
    name = models.CharField(max_length=80, help_text='Easy to remember name like "HQ"')    
    customer = models.ForeignKey(Customer)
    address_type = models.CharField(max_length=12, choices=ADDRESS_TYPES,)
    street_1 = models.CharField(max_length=100)
    street_2 = models.CharField(max_length=100)
    ...

    def __unicode__(self):
        return self.name

先谢谢!

2 个答案:

答案 0 :(得分:0)

来自the docs

  

将调用模型的__unicode__方法来生成对象的字符串表示形式,以便在字段的选择中使用...

所以,override Address.__unicode__()

答案 1 :(得分:0)

试着看看这个问题:

How to work with dynamic data in Admin Panel?

django ForeignKey model filter in admin-area?

我认为它们与你的问题非常相似。您只需在地址模型中设置admin.py中的选项。