Проверка данных в Django ModelForm

И у меня есть простая модель для пакета

from models import Package
from django import forms

class PackageForm(forms.ModelForm):
class Meta:
    model= Package
    fields= ['name', 'version', 'url', 'description', 'arch', 'dependancies', 'conflicts', 'file']

Как я могу попросить форму модели проверить в рамках проверки, например, расширение файла (класс FileField) .sh?

есть ли способ поместить это в модельную форму? Могу ли я управлять им только в представлении?

Спасибо

Редактировать: Кроме того, забыл спросить, у модели есть внешний ключ для модели пользователя auth... которая будет содержать текущего пользователя... как модель может управлять этим?

Еще раз спасибо


Спасибо за ответ! я получаю это .. хотя я столкнулся с проблемой

Пакет содержит внешний ключ для модели пользователя django.contrib.auth.models. Когда форма обрабатывается, как я могу сообщить форме модели передать текущий пользовательский объект экземпляру модели? я думал об этом...

просмотры.py

def add(request):
if request.method == 'POST':
    the_model= PackageForm(request.user, request.POST, request.FILES)
    if the_model.is_valid():
        the_model.save()

я перезаписал init в форме модели:

from models import Package
from django import forms

class PackageForm(forms.ModelForm):
def __init__(self,user,*args,**kwargs):
        super (PackageForm,self ).__init__(*args,**kwargs) # populates the post
        self.fields['maintainer_name'].queryset = user # adds the user object passed by add in views.py
class Meta:
    model= Package
    fields= ['name', 'version', 'url', 'description', 'arch', 'dependancies', 'conflicts', 'file']

manteiner_name - это объект ForeignKey(User)... он выдает ошибку ключа :( это нехорошо... Есть решения?

Спасибо!


person PirosB3    schedule 05.02.2010    source источник


Ответы (1)