python - 在 forms.py 的 admin.py 中包含一个 ModelForm

标签 python django django-models django-forms django-admin

我想在 forms.py
的 YourModelForm 类中定义的 admin.py "extra_field" 添加自定义字段 表单.py

***class YourModelForm(forms.ModelForm):***

extra_field = forms.CharField()

def save(self, commit=True):
    extra_field = self.cleaned_data.get('extra_field', None)
    # ...do something with extra_field here...
    return super(YourModelForm, self).save(commit=commit)

class Meta:
    model = movie
    fields = '__all__'

admin.py

    # -*- coding: utf-8 -*-
    from __future__ import unicode_literals

    from django.contrib import admin

    from . models import movie, genre

    from . import forms

    class movieAdmin(admin.ModelAdmin):

        form = YourModelForm

        list_display=('movie_name', 'movie_rating','Date','count',)
        search_fields=('movie_name',)
        filter_horizontal=('movie_genres',)
        list_filter=('Date',)
        date_hierarchy='Date'
        ordering=('-movie_name',)
        fields=('movie_name','movie_rating','movie_genres', 'extra_field',)



    class genreAdmin(admin.ModelAdmin):
         list_display=('genre_name',)


    admin.site.register(movie, movieAdmin)
    admin.site.register(genre, genreAdmin)

NameError: 名称 'YourModelForm' 未定义

最佳答案

您已经将 forms 模块作为一个整体导入,因此您需要使用该限定名称:

form = forms.YourModelForm

(注意,这是标准的 Python 导入语义,与 Django 无关。)

关于python - 在 forms.py 的 admin.py 中包含一个 ModelForm,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45673901/

相关文章:

Django 休息框架 : DRYer pagination for custom actions

python - Django:根据预保存信号调整图像大小

python - 导入错误 : cannot import name <model_class>

python - 从另一个函数复制类型签名

python - 使用 cx_Freeze 导入 matplotlib.pyplot 和 BeautifulSoup

python - 通过django storages boto s3将二进制数据保存到模型上的文件中

django - 在 Django 测试中设置 HTTP_REFERER header

python - 使模型引用一对多抽象模型

python - Pandas :转置数据框

python - 根据 Pandas 列中的 True 或 False 从 DataFrame 中选择行