自动在django中显示foreignkey的其他字段

时间:2018-05-13 05:57:03

标签: django

我试图在html上显示与其foreignkey相关的字段。让我们看看我有两个模型,如下所示:

models.py

from django.db import models

class Model_Item(models.Model):
    item_name = models.CharField(max_length = 100, null = False, blank = False, unique = True)
    item_unit = models.CharField(max_length = 20, null = False, blank = False) # can be kilogram, pound, ounce, etc

    def __unicode__(self):
        return self.item_name

class Model_Weight(models.Model):
    item = models.ForeignKey(Model_Item, to_field = "item_name")
    item_weight = models.FloatField(null = True, blank = True)

    def __unicode__(self):
        return self.item

在Model_Item模型上,每个项目都可以有自己的单位,并且可以有很多项目。然后我们将在第二个模型(Model_Weight)上选择项目,并插入根据其单位的权重值。

我们如何显示相应的" item_unit"在html中,当我们选择" item_name"时,它的单位将显示/悬停在网页的某个位置,这使我们能够输入正确的权重值?

以下是其余代码:

forms.py

from django import forms
from .models import Model_Weight

class Form_Weight(forms.ModelForm):
    class Meta:
        model = Model_Weight
        fields = ["item", "item_weight"]

views.py

from .models import Model_Weight
from .forms import Form_Weight
from django.views.generic import CreateView

class View_Weight_CV(CreateView):
    form_class = Form_Weight

    def form_valid(self, form):
        instance = form.save(commit = False)
        instance.user = self.request.user
        return super(View_Weight_CV, self).form_valid(form)

的HTML

<form method = "POST" action = "" enctype = "multipart/form-data"> {% csrf_token %}
    {{ form.item}}
    <!-- {{ form.model_item.item_unit }} Automatically shows this field once an item has been selected --> 
    {{ form.item_weight}}
    <input type = "submit" value = "Submit">
</form>

0 个答案:

没有答案