@rusrich

Как в Django Admin на странице редактирования одной модели создать объект другой модели?

Добрый день.

В админке нужно при нажатии на кнопку на странице редактирования одной модели, сделать так, чтобы создавался объект другой модели:

from loans.models import Bid, Payment

@admin.register(Bid)
class Bid(admin.ModelAdmin):
    change_form_template = "admin/my_admin_bid.html"

        def response_change(self, request, obj):
        if "_make_paid" in request.POST:
            obj.state = 'PAID'
            obj.save()
            Payment.objects.create(bid=obj, amount=amount)
            # Получаю Error: AttributeError: type object 'Payment' has no attribute 'objects'
            self.message_user(request, "This loan mark as PAID")
            return HttpResponseRedirect(".")
        return super().response_change(request, obj)


Нагуглить решение не получается.
  • Вопрос задан
  • 210 просмотров
Решения вопроса 1
@rusrich Автор вопроса
Работает так:

class Bid(admin.ModelAdmin):
    change_form_template = "admin/my_admin_bid.html"

        def response_change(self, request, obj):
        if "_make_paid" in request.POST:
            obj.state = 'PAID'
            obj.save()
            obj.payment.create(bid=obj, amount=amount)
            self.message_user(request, "This loan mark as PAID")
            return HttpResponseRedirect(".")
        return super().response_change(request, obj)


Вместо Payment.objects.create(bid=obj, amount=amount)
Пишем это obj.payment.create(bid=obj, amount=amount)
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы