首页 > 解决方案 > 如何在 Django 模型外键上添加条件?

问题描述

我是 Django 的新手,请你帮帮我,我有两个模型,分别是 Continent 和 Country,在 Country 表单中我只想在下拉列表中显示它们状态为 true 的 Continents?

楷模

    from django.db import models
    from smart_selects.db_fields import GroupedForeignKey, ChainedForeignKey
    
    
    class Continent(models.Model):
        name = models.CharField(max_length=255)
        status=models.BooleanField(default=True)
    
        def __str__(self):
            return self.name
    
    class Country(models.Model):
        continent = models.ForeignKey(Continent, null=True, on_delete=models.SET_NULL)
        status=models.BooleanField(default=True)
        name = models.CharField(max_length=255)
        
        def __str__(self):
            return self.name

形式

    class FormContinent(ModelForm):
        class Meta:
            model = Continent
            fields = '__all__'
    
    class FormCountry(ModelForm):
        class Meta:
            model = Country
            fields = '__all__'

意见

def continent(request):
    form = FormContinent()
    if request.method == 'POST':
        form = FormContinent(request.POST)
        form.is_valid()
        form.save()
        return redirect('/continent')
    else:
        context = {'form': form}
        return render(request, 'continent.html', context)


def country(request):
    form = FormCountry()
    if request.method == 'POST':
        form = FormCountry(request.POST)
        form.is_valid()
        form.save()
        return redirect('/country')
    else:
        context = {'form': form}
        return render(request, 'country.html', context)

标签: django

解决方案



推荐阅读