cuốn sách gpt4 ai đã làm

Đặt các trường hiển thị Django ModelForm khi chạy?

In lại Tác giả: Vũ trụ không gian Thời gian cập nhật: 2023-11-03 15:28:26 25 4
mua khóa gpt4 Nike

Tôi có một mô hình Django:

lớp Khách hàng (model.Model):
first_name=models.CharField(max_length=20,null=True, trống=True)
Last_name=models.CharField(max_length=25,null=True, trống=True)
address=models.CharField(max_length=60,null=True, trống=True)
address2=models.CharField(max_length=60,null=True, trống=True)
city=models.CharField(max_length=40,null=True, trống=True)
state=models.CharField(max_length=2,null=True, trống=True)

Từ đó, tôi đã tạo ModelForm:

lớp CustomerForm(forms.ModelForm):
lớp Meta:
người mẫu=Khách hàng

Tôi muốn có thể hiển thị các đoạn biểu mẫu trong mẫu của mình tương ứng với thông tin cụ thể mà người dùng có thể thay đổi. Ví dụ: nếu tôi muốn khách hàng thay đổi tên của họ, tôi muốn có thể hiển thị biểu mẫu chỉ có trường "first_name" và "last_name".

Một cách để thực hiện việc này là tạo ModelForm cho từng đoạn trường khác nhau... Đối với ví dụ về tên, nó sẽ trông như thế này:

lớp CustomerFormName(forms.ModelForm):
lớp Meta:
người mẫu=Khách hàng
field=('first_name','last_name')

Điều này trông rất không thanh lịch và không linh hoạt. Điều tôi muốn làm là có thể chỉ định các trường trong thời gian chạy, vì vậy khi tôi chuyển từ điển từ Chế độ xem sang mẫu, tôi chỉ có thể đặt các trường tôi muốn hiển thị. Làm cách nào để thiết lập điều này để các trường của biểu mẫu được đặt khi chạy? Lý tưởng nhất là tôi muốn từ điển cuối cùng được thông qua trông như thế này:

{'name_change_form':CustomerFormName(), 'address_change_form':CustomerFormName()}

Sau đó, tôi biết rằng bất cứ khi nào tôi xuất name_change_form.as_p, nó sẽ có các trường biểu mẫu mà tôi đang tìm kiếm.

ý tưởng? Vui lòng đề xuất các phương pháp tốt hơn.

câu trả lời hay nhất

từ django.forms nhập ModelForm
từ bất cứ nơi nào nhập khẩu Khách hàng
def formClassFactory(model,fields):
ff = trường
mm = mô hình
lớp formClass(ModelForm):
lớp Meta:
mô hình=mm
trường=ff
biểu mẫu trả vềClass
form_class = formClassFactory(('first_name','last_name') )

Đặt các trường hiển thị Django ModelForm khi chạy? , chúng tôi đã tìm thấy một câu hỏi tương tự trên Stack Overflow: https://stackoverflow.com/questions/3276896/

25 4 0
không gian vũ trụ
Hồ sơ

Tôi là một lập trình viên xuất sắc, rất giỏi!

Nhận phiếu giảm giá taxi Didi miễn phí
Phiếu giảm giá taxi Didi
Chứng chỉ ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com
Xem sitemap của VNExpress