[英]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.