2012-01-25 28 views
12

Tôi cố gắng để sử dụng ModelForm:Django ModelForm không có lớp mô hình quy định

from django.db import models 
from django.forms import ModelForm 

class Car(models.Model): 
    carnumber = models.CharField(max_length=5) 

    def __unicode__(self): 
     return self.carnumber 

class PickForm(ModelForm): 
    class Meta: 
     Model = Car` 

Tôi đã kiểm tra này và tôi không thể tìm thấy lỗi của tôi. Khi tôi gọi là xem trong trình duyệt, nó mang lại cho tôi những lỗi sau:

ModelForm has no model class specified 

Tôi đã thử nghiệm quan điểm cho rằng gọi là mô hình với đơn giản "foo bar" mã tại URL tương tự, nhưng khi tôi thử mã này , Tôi gặp lỗi lớp ở trên.

Trả lời

24

Nó phải là model thay vì Model (và không có dấu `, nhưng tôi đoán đó là một lỗi đánh máy):

class PickForm(ModelForm): 
    class Meta: 
     model = Car 
+0

CẢM ƠN BẠN !!! và có dấu back-tick đó là lỗi đánh máy ... không phải trong mã của tôi chút nào, chỉ trên trang web. – dpbklyn

+1

Không muốn làm phiền hoặc bất cứ điều gì, nhưng nó sẽ không có ý nghĩa để chấp nhận câu trả lời thực sự giúp bạn? ;-) –

+0

vừa làm, cảm ơn bạn – dpbklyn

0

Nếu đây là một bản sao và quá khứ, bạn có một lỗi đánh máy. Tôi rất muốn giới thiệu bạn sử dụng một IDE hoặc một cái gì đó với kiểm tra lỗi. Eclipse là những gì tôi sử dụng. Nó sẽ giúp bạn tiết kiệm rất nhiều thời gian từ những phiền toái nhỏ như thế này.

class PickForm(ModelForm): 
    class Meta: 
     Model = Car` 

Lỗi đánh máy của bạn ở ngay cuối ô tô. Điều apostrophe nhỏ.

+0

Tôi đang sử dụng geany, tôi sẽ kiểm tra Eclipse. – dpbklyn

0

Chỉ cần làm phương pháp này trang của bạn sẽ chạy:

class PickForm(ModelForm): 
    class Meta: 
    model = Car 
    fields = "__all__" 
-1

Bạn bỏ lỡ bước cơ bản của việc đăng ký mô hình của bạn cho người quản trị. Hãy làm điều đó và điều đó sẽ làm việc cho bạn.

Trong tập tin admin.py của ứng dụng của bạn thêm những dòng này:

from yourapp.models import yourmodel 
admin.site.register(yourmodel) 

đây yourappyourmodel cần phải được thay thế bằng những cái tên chính xác cho ứng dụng và mô hình của bạn.

Các vấn đề liên quan