Форум сайта python.su
Условие: Есть модель Promotion, которая имеет 2 поля:
models.py
starting_date = models.DateField(_('Дата начала'))
expiry_date = models.DateField(_('Дата окончания'))
from django import forms
from django.utils.translation import ugettext_lazy as _
from wonderay.main.models import Promotion
class PromotionAdminForm(forms.ModelForm):
class Meta:
model = Promotion
def clean(self):
self.cleaned_data = super(PromotionAdminForm, self).clean()
if self.instance.starting_date > self.instance.expiry_date:
raise forms.ValidationError(_('Дата начала акции должна быть меньше даты конца акции'))
return self.cleaned_data
from django.contrib import admin
from wonderay.main import models, forms
class PromotionAdmin(admin.ModelAdmin):
form = forms.PromotionAdminForm
admin.site.register(models.Promotion, PromotionAdmin)
Офлайн
А функцию save() в модели юзать не пробовал?
Офлайн
helm2004, эм… вроде ошибку выдает не модель, а все же форма. Хотя я не пробовал) А надо бы?
Офлайн
Пишу в этот топик, так как вопрос похожий и есть продолжением первого.
Есть в модели 2 поля - одно обязательно, второе - нет.
Как проверку, чтобы если в первом поле значение равно 1, то второе поля становилось обязательным???
Я опять таки переопределил форму, а в форме ModelForms не знаю как дальше.
Пробовал переопределить инит:
class PromotionAdminForm(forms.ModelForm):
class Meta:
model = Promotion
def __init__(self, *args, **kwargs):
super(PromotionAdminForm, self).__init__(*args, **kwargs)
if self.instance.discount == 1:
self.fields['comment'].required = True
Офлайн