И у меня есть простая модель для пакета
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)... он выдает ошибку ключа :( это нехорошо... Есть решения?
Спасибо!