/ / Отваряне на полето в django, което се попълва от колона таблица на базата данни - django

Разгънете кутията в django, която се попълва от колоната в таблицата на таблицата - django

Търсих едно и също нещо в мрежата и получих много отговори, но някои успяха да работят с някоя от тях.

Таблица:

  1. Доклад: reportType (чужд ключ от ReportCategory), име, описание
  2. Категория на отчета: име, описание

forms.py

class ReportForm_insert(forms.ModelForm):
class Meta:
model=Report
invent = ReportCategory.objects.all()
print invent
reportType_id = forms.ModelMultipleChoiceField(queryset = invent)
fields =("name","description",)

model.py

class ReportCategory(models.Model):
name = models.CharField(max_length=20)
description =  models.CharField(max_length=20)

def __unicode__(self):
return self.name

class Report(models.Model):
reportType = models.ForeignKey(ReportCategory)
name = models.CharField(max_length=200)
description = models.CharField(max_length=300)

def __unicode__(self):
return self.name

Сега, в клас "мета", се опитвам да направя две неща:

Първо, популяризиране на падащото меню Тип на отчетасъс стойността от колоната "име" в таблицата с отчетни таблици. На второ място, когато всички други полета във формуляра се попълват от потребителя и бутонът е натиснат, данните в полетата трябва да бъдат запазени Таблицата с отчети, като се има предвид ограничението на чуждия ключ, което има от таблицата на отчетната категория.

Отговори:

2 за отговор № 1
reportType = models.CharField(max_length=200)

Би трябвало:

reportType = models.ForeignKey(ReportCategory)

След това върху модела на ReportCategory добавете:

def __unicode__(self):
return self.name

След това на формуляра си нямате нужда от други неща


0 за отговор № 2

Използвайте InlineFormsets.

https://docs.djangoproject.com/en/dev/topics/forms/modelforms/#inline-formsets

class Author(models.Model):
name = models.CharField(max_length=100)

class Book(models.Model):
author = models.ForeignKey(Author)
title = models.CharField(max_length=100)

>>> from django.forms.models import inlineformset_factory
>>> BookFormSet = inlineformset_factory(Author, Book)
>>> author = Author.objects.get(name=u"Mike Royko")
>>> formset = BookFormSet(instance=author)

0 за отговор № 3

в forms.py

class ReportForm_insert(forms.ModelForm):
class Meta:
model=Report

Това е. Джанго автоматично разбира, че трябва да се създаде падане, когато го обявяваме за чужд ключ в модела.