Администратор Django: Как перенаправить представление модели ребенка от родителя? - PullRequest
0 голосов
/ 09 февраля 2019

У меня есть две модели django, которые зарегистрированы администратором.Давайте рассмотрим пример ниже:

#parent
class Manufacturer(models.Model):
    name = models.TextField()
    #some relevant fields
...

#child
class Car(models.Model):
    manufacturers = models.ForeignKey(Manufacturer, 
    on_delete=models.CASCADE, related_name="manufacturers)
    # some relevant fields

Обе эти модели зарегистрированы у администратора.Таким образом, в представлении администратора отображается список для производителя.Теперь я хочу, чтобы, если кто-то нажимал на имя производителя, он перенаправлял в список автомобилей со списком всех тех автомобилей, у которых этот производитель является родителем.Возможно ли этого добиться?Если так, то как?

Ответы [ 2 ]

0 голосов
/ 11 февраля 2019

Да, вы можете добиться этого, используя встроенные функции в Django Admin.

from django.contrib import admin

class CarInline(admin.TabularInline):
      model = Car

class ManufacturerAdmin(admin.ModelAdmin):
      inlines = [
           CarInline,
      ]

См. Официальные документы администратора встроенной модели Django

0 голосов
/ 09 февраля 2019

Что-то вроде этого?

#HTML admin
{% for man in manufacturer %}
<a href="{% url 'carview' %}?man_id={{manufacturer.pk}}">{{manufacturer.name}}</a>
{% endfor %}

#views.py
def carview(request):
    if request.method == 'GET':
        cars = Car.objects.filter(manufacturer=request.GET.get(man_id))
        context = {'cars':cars}
        return render(request, 'cars', context)

#HTML cars
{% for car in cars %}
{{car.name}}
{% endfor %}

Конечно, вы должны сделать контекст для своего представления администратора.И в своем классе автомобилей вы забыли назвать поле производителя.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...