django模型对象过滤器

时间:2010-04-23 12:16:35

标签: django django-models django-admin

我有一个模型'测试',其中我有2个外键

models.py

class Test(models.Model):
    id =models.Autofield(primary_key=True)
    name=models.ForeignKey(model2)
    login=models.ForeignKey(model1)
    status=models.CharField(max_length=200)



class model1(models.Model):
   id=models.CharField(primary_key=True)
   .
   .

   is_active=models.IntergerField()


 class model2(model.Model):
    id=models.ForeignKey(model1)
     .

     .
     status=model.CharField(max_length=200)

当我在模型'Test'中添加对象时,如果我选择某个登录,那么只有与该对象相关的对象(model2)应该显示在字段'name'中。如何才能实现这一点。这将是运行时,就像运行时一样我更改登录字段值,名称中的对象也应该更改。

1 个答案:

答案 0 :(得分:1)

覆盖类 Test 的save方法。 因此,您可以根据登录名将 name 设置为您想要的。

class Test(models.Model):
    .
    .
    def save(self, force_insert=False, force_update=False):
        self.name = self.login.model_set()[0] # or what ever you want
        super(Test, self).save(force_insert, force_update)