पर एक गणना फ़ील्ड जोड़ने के लिए मेरे पास एक साधारण Employee
मॉडल है जिसमें firstname
, lastname
और middlename
फ़ील्ड शामिल हैं। जैसे परिकलित क्षेत्र बनाने के द्वाराएक Django मॉडल
lastname, firstname middlename
मेरे लिए
तार्किक जगह इस मॉडल में है क्या करने के लिए:
व्यवस्थापक तरफ और संभावना कहीं और, मैं प्रदर्शित करने के लिए के रूप में है कि चाहते हैं
from django.db import models
from django.contrib import admin
class Employee(models.Model):
lastname = models.CharField("Last", max_length=64)
firstname = models.CharField("First", max_length=64)
middlename = models.CharField("Middle", max_length=64)
clocknumber = models.CharField(max_length=16)
name = ''.join(
[lastname.value_to_string(),
',',
firstname.value_to_string(),
' ',
middlename.value_to_string()])
class Meta:
ordering = ['lastname','firstname', 'middlename']
class EmployeeAdmin(admin.ModelAdmin):
list_display = ('clocknumber','name')
fieldsets = [("Name", {"fields":(("lastname", "firstname", "middlename"), "clocknumber")}),
]
admin.site.register(Employee, EmployeeAdmin)
अंत में मुझे लगता है कि मुझे लगता है कि मुझे फ़ील्ड के मूल्य स्ट्रिंग के रूप में प्राप्त करना है। मुझे जो त्रुटि मिल रही है वह value_to_string() takes exactly 2 arguments (1 given)
है। स्ट्रिंग का मान self, obj
चाहता है। मुझे यकीन नहीं है कि obj
का अर्थ क्या है।
ऐसा करने का एक आसान तरीका होना चाहिए, मुझे यकीन है कि मैं ऐसा करने वाला पहला व्यक्ति नहीं हूं।
संपादित करें: यह मेरा कोड डैनियल के उत्तर में संशोधित है। मुझे जो त्रुटि मिलती है वह है:
django.core.exceptions.ImproperlyConfigured:
EmployeeAdmin.list_display[1], 'name' is not a callable or an
attribute of 'EmployeeAdmin' of found in the model 'Employee'.
from django.db import models
from django.contrib import admin
class Employee(models.Model):
lastname = models.CharField("Last", max_length=64)
firstname = models.CharField("First", max_length=64)
middlename = models.CharField("Middle", max_length=64)
clocknumber = models.CharField(max_length=16)
@property
def name(self):
return ''.join(
[self.lastname,' ,', self.firstname, ' ', self.middlename])
class Meta:
ordering = ['lastname','firstname', 'middlename']
class EmployeeAdmin(admin.ModelAdmin):
list_display = ('clocknumber','name')
fieldsets = [("Name", {"fields":(("lastname", "firstname", "middlename"), "clocknumber")}),
]
admin.site.register(Employee, EmployeeAdmin)
संभव डुप्लिकेट [Django मॉडल: फ़ील्ड मान अन्य फ़ील्ड की गणना है] (http://stackoverflow.com/questions/11465293/django-model-field-value-is-calculation-of-other-fileds) – Anto