2010-07-01 11 views
13

मैं खेतों से होकर पुनरावृति करने के लिए कोशिश कर रहा हूँ के रूप में वे अपने मॉडल भीतर नीचे लिखा जाता है:मॉडल खेतों से होकर बार-बार दोहराना - Django

वर्तमान में मैं इस का उपयोग कर रहा:

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

लेकिन आदेश लगता है काफी यादृच्छिक :(


कोई भी विचार?

+०१२३५१६४१०

उत्तर

22

_metaModel कक्षाओं और गुणों पर विशेषता django.db.models.options.Options है जो प्रश्न में Model के बारे में उपयोगी जानकारी के सभी प्रकार तक पहुंच प्रदान करता है।

फ़ील्ड के लिए, यह आपको उन्हें बनाए गए क्रम में देगा (यानी वे उसी आदेश को घोषित किए गए थे)।

def attrs(self): 
    for field in self._meta.fields: 
     yield field.name, getattr(self, field.name) 
संबंधित मुद्दे