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