1

したがって、モデルCarの外部キーで呼び出されるManufacturerモデルがあります。CarCharacterisitcsの外部キーを持つモデルもありCarます。

コードは次のようになります。

class Car(models.Model):
    idcar = models.AutoField(primary_key=True)
    manufacturer = models.ForeignKey(Manufacturer, null=True, blank=True, on_delete=models.SET_NULL)
    name = models.CharField(max_length=765)

class Manufacturer(models.Model):
    idmanufacturer = models.AutoField(primary_key=True)
    name = models.CharField(max_length=765)

class CarCharacteristics(models.Model):
    idcar_characteristics = models.AutoField(primary_key=True)
    car = models.ForeignKey(Car, on_delete=models.PROTECT)

を追加できるページを作っていますCarCharacteristics

これは私のフォームとビューです:

class CarCharacteristicsForm(ModelForm):
    class Meta:
        model = CarCharacterisitics

def add_car_characteristics(request):
    if request.method == 'POST':
        car_char_form = CarCharacterisiticsForm(request.POST)
        if car_char.is_valid(:
            car_char_form.save()
            return HttpResponseRedirect('/cars/car-characterisitcs')
    else:
        car_char_form = CarCharacterisiticsForm()
    return render(request, 'car_characteristics/add_car_characteristics.html',{'car_char_form': car_char_form,})

私のhtmlページには、これがあります:

<h1>Car Characteristics</h1>
<form action="." method="POST">
{% csrf_token %}
    <table id="characteristics_table">
        <tr>
        <td>
        <table id="car_characterisitcs_table">
            <td>{{ char_char_form.as_table }}</td>
        </table>
        </td>
        </tr>
    </table>
    <p><input type="submit" value="Submit"></p>
</form>

このフォームが表示されると、考えられるすべてのCarモデルを含むドロップダウン選択フィールドが表示されます。私が欲しいのは、2つの選択フィールドを持つことです。最初に を選択できるようにしてから、2 番目にそのメーカーManufacturerのすべての可能性を表示できるようにします。Cars次に、フォームを送信すると、Car選択した がCarCharacterisitcsモデルの外部キーに割り当てられます。

Advance Auto Partsを見に行くと、「あなたの車」をクリックすると、それが私が欲しいものです。それ、どうやったら出来るの?

4

1 に答える 1

0

AJAX を使用して、選択したメーカーのデータを取得し、それに応じて car フィールドに入力する必要があります。これはビュー コード内で実行し、車から取得したデータをテンプレートに返し、テンプレート言語を使用してフィールドに入力する必要があります。

于 2012-06-30T20:44:56.743 に答える