我是django的新手,并创建了一个调查应用程序。我在admin.py中为我的slug添加了预先填充的字段,这些字段必须是数据库中的唯一值,并且为了复制调查而添加了save_as = True。我的问题是,一旦调查已经创建并保存,如果我想编辑调查的名称(以及调查的标题),编辑调查名称将不会相应地更新slug而无需手动编辑slug字段。我想知道是否可以解决这个问题,以便在编辑调查名称时,slug字段也会更新。
admin.py:
class SurveyAdmin(admin.ModelAdmin):
prepopulated_fields = { "slug": ("name",),}
fields = ['name', 'pub_date', 'description', 'external_survey_url','minutes_allowed', 'slug']
inlines = [QuestionInline, SurveyImageInLine]
save_as = True
admin.site.unregister(User)
admin.site.register(Survey, SurveyAdmin)
admin.site.register(Question, QuestionAdmin)
答案 0 :(得分:0)
感谢输入人员,我能够成功覆盖模型save()方法,该方法现在可以在更新名称时正确更新slug ..
models.py:
def save(self, *args, **kwargs):
self.slug = self.name
super(Survey, self).save(*args, **kwargs)