簡體   English   中英

如何在 CreateView 字段中進行下拉選擇 - Django

[英]how to make a dropdown selection in a CreateView field- Django

我正在向我的 PostCreateView 添加一個新字段(位置)

如果它已經在數據庫中,我希望能夠 select 該字段。 (如 idk 紐約)

它確實出現了,但它不是下拉列表。

視圖.py

class PostCreateView(LoginRequiredMixin, CreateView):
    model = Post
    fields = ['title', 'content', 'location'] 
    success_url = '/'

    

模型.py

class Location(models.Model):
    location = models.CharField(max_length=100)


    def __str__(self):
        return self.location


    def get_absolute_url(self):
        return reverse('home')

class Post(models.Model):
    title = models.CharField(max_length=100)
    content = models.TextField()
    location = models.CharField(max_length=100, default="")


    def total_likes(self):
        return self.likes.count()


    def __str__(self):
        return self.title


    def get_absolute_url(self):
        return reverse('post-detail', kwargs={'pk': self.pk})



我試圖添加這個

widgets= {
        'location': forms.Select(attrs={'class': 'form-control'})
    }

就在我的 class PostCreateView 的正下方,但我想它不起作用,因為我不使用 forms.py 而是在 views.py 中使用 class PostCreateView

在您的models.py文件中,位置組件應該是ForeignKey 在這種情況下,您的 model 應該如下所示:

class Post(models.Model):
    title = models.CharField(max_length=100)
    content = models.TextField()
    location = models.ForeignKey(Location, on_delete=models.CASCADE)

當您將該字段添加到表單或從CreateView定義的字段時,它將顯示為下拉列表。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM