2009-06-28 38 views
18

Làm cách nào để gán giá trị ban đầu cho các trường bên trong ModelForm? ví dụ:Cách tạo giá trị ban đầu trong modelform

class Form1(forms.Form): 
    title=forms.CharField(initial="hello") 

Điều gì sẽ là tương đương cho việc này bằng ModelForm mà cơ bản cú pháp là một cái gì đó như:

class Form2(djangoforms.ModelForm): 
    class Meta: 
     model=SomeModel 
     fields=('title',) 

Những gì tôi đang cố gắng làm là tạo ra một CRUD. Vì tôi đang làm điều đó trong một dự án appengine tôi không thể sử dụng quan điểm chung. Appengine đã cung cấp cho chúng tôi djangoforms.ModelForm hoạt động giống như của django ModelForm nhưng sử dụng kho dữ liệu của appengine.

Tôi cần chức năng ở trên để thực hiện phần "chỉnh sửa".

+0

liên quan: http://stackoverflow.com/q/604266/212218 –

Trả lời

24

Thông thường bạn sẽ chuyển đối tượng mô hình mà bạn đang chỉnh sửa dưới dạng từ khóa ví dụ arg vào biểu mẫu: Form2(instance = somemodelobject), nhưng tôi không biết nếu nó hoạt động trên GAE. Bạn luôn có thể chuyển từ điển ban đầu cho hàm tạo của biểu mẫu, như

Form2(initial = {"title": "blahblah"}) 
+1

cảm ơn, cả hai phương pháp bạn đã làm việc ... – Dhushyanth

4

Giá trị mặc định của mẫu được lấy từ chính mô hình. Ví dụ:

class SomeModel(models.Model): 
    title = models.CharField(max_length=45, default="hello") 

Bạn không cần phải thực hiện bất kỳ thay đổi nào ModelForm của bạn:

class RequestForm(forms.ModelForm): 

    class Meta: 
     model = SomeModel 
Các vấn đề liên quan