Форум сайта python.su
alphabet.py: class A(models.Model): type = models.CharField(max_length=1, null=True, blank=True) a1 = models.CharField(max_length=50) a2 = models.CharField(max_length=50) a3 = models.CharField(max_length=50) class AAdmin(admin.ModelAdmin): list_display = ('id', 'a1', 'a2', 'a3',) class B(A): b1 = models.CharField(max_length=50) b2 = models.CharField(max_length=50) b3 = models.CharField(max_length=50) class BAdmin(admin.ModelAdmin): list_display = ('id', 'a1', 'a2', 'a3', 'b1', 'b2', 'b3',) def save_model(self, request, obj, form, change): obj.type = B class C(A): c1 = models.CharField(max_length=50) c2 = models.CharField(max_length=50) c3 = models.CharField(max_length=50) class CAdmin(admin.ModelAdmin): list_display = ('id', 'a1', 'a2', 'a3', 'c1', 'c2', 'c3',) def save_model(self, request, obj, form, change): obj.type = C
Отредактировано andrey16 (Окт. 29, 2013 07:51:53)
Офлайн
andrey16
как сделать переадресацию типа:
http://127.0.0.1:8000/admin/alphabet/<type>/<id>/
class A(models.Model): type = models.CharField(max_length=1, null=True, blank=True) a1 = models.CharField(max_length=50) a2 = models.CharField(max_length=50) a3 = models.CharField(max_length=50) def edt_lnk(self): return '<a href="/admin/alphabet/%s/%s">%s</a>' % (self.type, self.id, self.id) edt_lnk.allow_tags = True edt_lnk.short_description = u'№' edt_lnk.admin_order_field = 'id' class AAdmin(admin.ModelAdmin): list_display = ('edt_lnk', 'a1', 'a2', 'a3',) def changelist_view(self, request, extra_context=None): self.list_display_links = (None,) return super(AAdmin, self).changelist_view(request, extra_context=None)
Отредактировано andrey16 (Ноя. 8, 2013 14:00:53)
Офлайн
судя по тому, что написано, вы очень бегло прочитали документацию джанго. Рекомендую все же более внимательно ознакомиться с ней. Раз уж зашла речь о наследовании - вот вам: https://docs.djangoproject.com/en/1.6/topics/db/models/#model-inheritance
Офлайн