Как отобразить внешний ключ в виде ссылки на модель в другом приложении в django admin - PullRequest
0 голосов
/ 05 февраля 2019

Я использую Django==2.1.5.И я прошел через те же вопросы, что и в моем названии, но не смог найти работающего решения из-за сходства названий моделей и соответствующих им имен полей, используемых в отношениях внешнего ключа, а также моделей в этих случаях использования были вЭто же приложение, поэтому оно меня смутило.

У меня есть модель Order в моем Shopping_cart приложении:

class Order(models.Model):
    owner = models.ForeignKey(Profile, on_delete=models.SET_NULL, null=True)

У меня есть другая модель Profile в моем accounts app:

class Profile(models.Model):
    user = models.OneToOneField(settings.AUTH_USER_MODEL, on_delete=models.CASCADE)
    products = models.ManyToManyField(Product, blank=True)

    def __str__(self):
        return self.user.username

В администраторе Order я отобразил соответствующего пользователя для определенного заказа следующим образом:

class OrderAdmin(admin.ModelAdmin):
    list_display = ('__str__', 'date_ordered', 'is_ordered', 'buyer_email')
    def buyer_email(self, instance):
        return instance.owner.user.email

Я хочу отобразить это buyer_emailв list_display порядке как ссылка, сейчас это просто текст.Здесь следует отметить, что Profile снова имеет OneToOneField с AUTH_USER_MODEL.Я хочу, чтобы ссылка переходила в представление Profile изменения администратора или, если бы мы могли отправить его в представление AUTH_USER_MODEL изменения администратора пользователя, как они пытаются это сделать здесь , это было быбольшая помощь!

...