Я совсем новичок в Django (на самом деле 4 месяца), я борюсь с этой проблемой в течение последних 2 дней, я думаю, что делаю какую-то глупую ошибку.Любая помощь или вклад высоко ценится.Я использую Django 1.3.
В модели, которую я имею,
BUSINESS_GROUP = (
('MNC','Multinational'),
('INT','International (Export/Import)'),
('DOM','Domestic/National'),
('LOC','Local'),
('VIR','Virtual'),
)
class BusinessGroup(models.Model):
bgroup_type = models.CharField(max_length=15, choices = BUSINESS_GROUP, blank = True, null = True)
class Business(models.Model):
business_group_choices = models.ManyToManyField(BusinessGroup, verbose_name= "Business Group")
В форме у меня есть что-то вроде
def __init__(self, *args, **kwargs):
super(BusinessForm, self).__init__(*args, **kwargs)
self.fields['business_group_choices'].widget = forms.CheckboxSelectMultiple(choices=BUSINESS_GROUP)
В представлении,
if request.method == 'POST':
form = BusinessForm(request.POST, instance = business)
if form.is_valid():
new_business = form.save(commit=False)
new_business.created_by = request.user
form_values = form.cleaned_data
new_business.save()
assign('edit_business', request.user, new_business)
return HttpResponseRedirect(new_business.get_absolute_url())
Я получаю такие ошибки, как
"DOM" is not a valid value for a primary key.
"INT" is not a valid value for a primary key.
и т. Д.
Я нашел источник ошибки здесь, в модели Django, источник ,
Но не ясно, какинтерпретировать и решить эту проблему.
Редактировать: Я попытался сделать поля пустыми = True и / или пусто = True все равно Я получаю ошибку проверки, почему?
Снекоторые изменения во всей настройке Я получил эту новую ошибку,
Select a valid choice. [u'MNC', u'INT', u'DOM', u'LOC', u'VIR'] is not one of the available choices.
Новая настройка: в модели
class BusinessGroup(models.Model):
bgroup_type = models.CharField(max_length=15)
class Business(models.Model):
business_group_choices = models.ManyToManyField(BusinessGroup, verbose_name= "Business Group", choices=BUSINESS_GROUP)
В форме у меня есть что-то вроде,
def __init__(self, *args, **kwargs):
super(BusinessForm, self).__init__(*args, **kwargs)
self.fields['business_group_choices'].widget = forms.CheckboxSelectMultiple(choices=BUSINESS_GROUP)