Как добавить форму в детали поста блога? - PullRequest
0 голосов
/ 26 марта 2020

Итак, у меня есть небольшой django проект блога. я успешно построил просмотры постов в блоге и детальный просмотр постов в блоге. но я хочу добавить небольшую форму на странице подробностей публикации; поэтому, когда вы добавляете новое сообщение, на странице сведений будет создаваться новая форма. Я знаю, как создавать формы в целом. пожалуйста, помогите мне с кодом

1 Ответ

1 голос
/ 26 марта 2020

Вы можете переопределить ModelAdmin.get_form() и ModelAdmin.get_fields() и вернуть другой набор полей после создания объекта

from django import forms
from django.contrib import admin
from django.db import models

class Blog(models.Model):
   name = models.CharField(max_length=10)
   description = models.CharField(max_length=10)

class CustomBlogForm(forms.ModelForm):
    # Note that this is a custom field, not in the Blog Model
    additional_field = models.CharField()

    class Meta:
        model = Blog
        fields = ['name', 'description', 'additional_field']

class BlogAdmin(admin.ModelAdmin):
   def get_fields(self, request, obj=None):
      if obj and obj.pk:
          return ['name', 'description', 'additional_field']
      return ['name']   

   def get_form(self, request, obj, **kwargs):
      if obj and obj.pk:
          return CustomBlogForm
      return super().get_form(request, obj, **kwargs) 


admin.site.register(Blog, BlogAdmin)

https://docs.djangoproject.com/en/3.0/ref/contrib/admin/#django .contrib.admin.ModelAdmin.get_form https://docs.djangoproject.com/en/3.0/ref/contrib/admin/#django .contrib.admin.ModelAdmin.get_fields

...