Towns モデルに関連する広告モデルがあります。このモデルには、いくつかのメタデータを持つ町のリストが含まれています。
私のフォームでは、町の ajax オートコンプリートを実装しました。各町には name_unique フィールドがあり、このデータに基づいてオートコンプリートが入力フォームの入力に役立ちます。
ただし、実際には Town.name_unique ではなく Town.id との関係が必要です。
djangoフォームがname_unique値を受け入れ、それを町の実際の「ID」として保存するように、どのようにそのようなアクションを実行できますか?
文字列をフォームに投稿して保存する方法
class Advert(models.Model):
class Meta:
verbose_name = u"Ogłoszenie"
verbose_name_plural = u"Ogłoszenia"
ordering = ['-date_added', ]
title = models.CharField(verbose_name="Tytuł ogłoszenia", max_length=32)
text = models.TextField(verbose_name="Treść ogłoszenia", max_length=3000)
location = models.ForeignKey("division.Towns", verbose_name="Miejscowość")
class AdvertForm(ModelForm):
category = CustomTreeNodeChoiceField(queryset=Category.objects.filter(parent__isnull=False),
empty_label="Wybierz kategorię", label="Kategoria")
class Meta:
model = Advert
exclude = ('ip', 'user', 'first_name', 'last_name')
widgets = {
'location': TextInput
}
def __init__(self, *args, **kwargs):
self.request = kwargs.pop('request', None)
super(AdvertForm, self).__init__(*args, **kwargs)
def add(request):
form = AdvertForm(request.POST or None, request=request)
if form.is_valid():
advert = form.save(commit=False)
advert.save()
return HttpResponseRedirect(reverse('adverts.views.detail', kwargs={'pk': advert.pk}))
return TemplateResponse(request, "adverts/add.html", {'form': form, })