2010-07-01 45 views
13

Tôi đang cố gắng để lặp thông qua các lĩnh vực như chúng được viết xuống trong mô hình của tôi:lặp lại thông qua các lĩnh vực mô hình - Django

hiện

Tôi đang sử dụng này:

def attrs(self): 
    for attr, value in self.__dict__.iteritems(): 
    yield attr, value 

nhưng thứ tự dường như khá nhiều ngẫu nhiên :(


Bất kỳ ý tưởng?

Trả lời

22

Thuộc tính _meta trên Model các lớp và phiên bản là django.db.models.options.Options cung cấp quyền truy cập vào tất cả các loại thông tin hữu ích về Model được đề cập.

Đối với các trường, trường sẽ cung cấp cho bạn theo thứ tự chúng được tạo (tức là cùng thứ tự mà chúng đã được khai báo).

def attrs(self): 
    for field in self._meta.fields: 
     yield field.name, getattr(self, field.name) 
Các vấn đề liên quan