Есть модель "выплата". Нужно запретить менять, но иметь возможность просматривать все её поля в CashPaymentChangeForm. Как это сделать?
Если плохо сформулировал - после того как модель создана - нельзя её изменять, но в ChangeForm можно видеть все её поля в readonly.
Сама модель:
class ClientToCompanyPayment(models.Model):
total = models.PositiveIntegerField(verbose_name='Сумма платежа', blank=False, null=False)
date = models.DateField(verbose_name='Дата платежа', blank=False)
client = models.ForeignKey(Client, verbose_name='Клиент')
payment_id = models.CharField(verbose_name='ID платежа', max_length=40, blank=False,
null=False, unique=True)
def __str__(self): # __unicode__ on Python 2
return self.payment_id
class Meta:
abstract = True
class CashPayment(ClientToCompanyPayment):
class Meta:
db_table = 'cash_payments'
admin.py:
class CashPaymentCreationForm(forms.ModelForm):
class Meta:
model = CashPayment
fields = ('client', ) # wat?
def save(self, commit=True):
payment = super(CashPaymentCreationForm, self).save(commit=False)
if commit:
payment.save()
return payment
class CashPaymentChangeForm(forms.ModelForm):
class Meta:
model = CashPayment
fields = ()
def save(self, commit=True):
payment = super(CashPaymentChangeForm, self).save(commit=False)
if commit:
payment.save()
return payment
class CashPaymentAdmin(admin.ModelAdmin):
form = CashPaymentChangeForm
add_form = CashPaymentCreationForm
admin.site.register(CashPayment, CashPaymentAdmin)