gpt4 book ai didi

python - 如何覆盖第 3 方安装的应用程序 django 的模型默认方法?

转载 作者:行者123 更新时间:2023-11-30 22:35:11 30 4
gpt4 key购买 nike

我刚刚安装了this django-csvimport package 。现在我想覆盖管理区域表单中的默认值。我找到了code here ,它定义模型,并包含当前的默认文本:

class CSVImport(models.Model):
""" Logging model for importing files """
model_choice = []
model_name = models.CharField(max_length=255, blank=False,
default='csvimport.Item',
help_text='Please specify the app_label.model_name',
choices=get_models())
field_list = models.TextField(blank=True,
help_text='''Enter list of fields in order only if
you dont have a header row with matching field names, eg.
"column1=shared_code,column2=org(Organisation|name)"''')
upload_file = models.FileField(upload_to='csv', storage=fs)
file_name = models.CharField(max_length=255, blank=True)
encoding = models.CharField(max_length=32, blank=True)
upload_method = models.CharField(blank=False, max_length=50,
default='manual', choices=CHOICES)
error_log = models.TextField(help_text='Each line is an import error')
import_date = models.DateField(auto_now=True)
import_user = models.CharField(max_length=255, default='anonymous',
help_text='User id as text', blank=True)

def error_log_html(self):
return re.sub('\n', '<br/>', self.error_log)
error_log_html.allow_tags = True

def __unicode__(self):
return self.upload_file.name

例如,我想用其他内容覆盖 model_name 字段默认 csvimport.Item 。我有点不知所措,因为我没有用于 csvimport 的应用程序文件夹,因为它是第三部分安装。这将是我第一次覆盖第三方安装的应用程序模型。

现在我更深入地研究了它,不确定是否应该重写此模型,或者更好地使用 admin.py 文件的 ModelAdmin 类?

谢谢!

最佳答案

"""Your admin.py"""

from csvimport.models import CSVImport
from csvimport.admin import CSVImportAdmin

class MyCSVImportAdmin(CSVImportAdmin):
"""Override some of the form's field properties:
clean, creation_counter, default_error_messages,
default_validators, disabled, empty_value, empty_values .. etc
"""

def get_form(self, request, obj=None, **kwargs):
form = super(MyCSVImportAdmin, self).get_form(request, obj, **kwargs)
form.base_fields["model_name"].initial = 'What you want'
form.base_fields["model_name"].help_text = 'Please customize the fields however you like'
return form

admin.site.unregister(CSVImport)
admin.site.register(CSVImport, MyCSVImportAdmin)

关于python - 如何覆盖第 3 方安装的应用程序 django 的模型默认方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44655073/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com