Django通过外键或不同的字段引用Model

时间:2016-03-04 19:03:37

标签: python django model django-rest-framework serializer

我正在使用Django REST Framework。我有两个模型,站点和状态。

class Statuses(models.Model):
    status_id = models.AutoField(primary_key=True)
    description = models.CharField(max_length=255, blank=True, null=True, unique=True)

    class Meta:
        managed = True
        db_table = 'Statuses'
@property
def status(self):
    return self.row_status.description

我希望能够在网站上执行GET,并返回Statuses.description字段(而不是Statuses.status_id)。此外,我希望它可以在POST中交替使用status_id或description来创建新站点。这类功能属于哪里(序列化器,模型等)?

我知道我可以通过向Sites模型添加属性然后在Sites序列化程序中引用此字段来完成我的问题的第一部分。

    private List<Type> Models = new List<Type>()
    {
        typeof(LineModel), typeof(LineDirectionModel), typeof(BusStopTimeModel), typeof(BusStopNameModel)
    };

    foreach (Type model in Models) // in code of my method
    {
        Connection.CreateTable<model>(); // error: 'model' is a variable but is used like a type
    }

但是我认为Model的约定是它应该是数据库表的1:1表示。有更好的方法吗?

1 个答案:

答案 0 :(得分:0)

这非常适合串行器,如下所示:

status

(但null=True字段可能未设置{{1}}。)