一尘不染

Django Admin的内联式解决方案,其中Admin包含对其他模型的ForeignKey

django

我有几个Customer预定Appointment的人。每个Appointment客户只有一个客户,尽管可以为一位客户预订在不同时间发生的多个约会。

class Customer(model.Model):
    def __unicode__(self):
        return u'%s' % (self.name,)
    name = models.CharField(max_length=30)
    # and about ten other fields I'd like to see from the admin view.

class Appointment(models.Model):
    datetime = models.DateTimeField()
    customer = models.ForeignKey("Customer")
    class Meta:
        ordering = ('datetime',)

现在,当管理员通过查看管理员中的约会(按时间排序)浏览日程表时,有时他们希望查看有关具有特定约会的客户的信息。现在,他们必须记住客户的姓名,从“约会”导航到“客户”管理页面,找到记住的客户,然后才能浏览其信息。

理想情况下,像管理员内联之类的东西会很棒。但是,如果有,我似乎只能CustomerInlineAppointment管理页面Customer上创建一个ForeignKey("Appointment")。(Django专门给我一个错误,说Customer没有ForeignKeyAppointment)。有谁知道类似的功能,但是什么时候AppointmentForeignKey('Customer')

注意:我简化了模型;目前,实际的客户字段除名称(一些自由文本)外还有大约10个字段,因此将所有信息都放在中是不切实际的__unicode__


阅读 359

收藏
2020-04-02

共1个答案

一尘不染

从上面完成@John的答案 -定义你希望在更改列表中看到的内容:

return '<a href="%s">%s</a>' % (
                     reverse('admin:applabel_customer_change', (self.customer.id,)),
                     self.customer.name # add more stuff here
             )
2020-04-02