0
上保存,如果用戶選擇特定的選項,我想利用用戶到一個頁面,在那裏他可以有一個更多的領域需要填補,然後重定向到管理員默認頁面在Django管理頁面收集其他信息?
上保存,如果用戶選擇特定的選項,我想利用用戶到一個頁面,在那裏他可以有一個更多的領域需要填補,然後重定向到管理員默認頁面在Django管理頁面收集其他信息?
不是相反重定向到一個新的頁面,你可以簡單地override the form那創建和更新頁面使用。這使您可以將其他字段添加到模型表單,將所有表單處理保留在一個位置。
首先,您需要設置您的ModelAdmin使用自定義窗體:
admin.py
from django.contrib import admin
from forms import BookAdminForm
from models import Book
class BookAdmin(admin.ModelAdmin):
form = BookAdminForm
admin.site.register(Book, BookAdmin)
forms.py
from django import forms
class BookAdminForm(forms.ModelForm):
additional_field = forms.CharField(max_length=100)
class Meta:
model = Book
接下來,你需要override the save method來檢查是否選擇了「某些選項」,然後處理額外的字段ap propriately。你的類中,你需要這樣的事:
def save(self, *args, **kwargs):
if self.cleaned_data['certain_field'].value == 'certain option':
# process additional_field
# don't forget to call super to save the rest of the form
super(BookAdminForm, self).save(*arg, **kwargs)
注:此代碼是未經測試,但它應該指向你在正確的方向。
也可以在ModelAdmin中使用override the save_model()
方法。
可能會更好地重寫管理類的save_model方法,而不是form.save,因爲您可能需要執行類似於重定向用戶的操作。 – 2009-05-21 08:17:29