django - Django 复选框-数据库连接
问题描述
最近我开始学习 Django,我试图通过浏览器访问我的数据库中的 BooleanField
这是我的表格
class NewTopicForm(forms.ModelForm):
slot1 = forms.BooleanField(required=False)
slot2 = forms.BooleanField(required=False)
slot3 = forms.BooleanField(required=False)
message = forms.CharField(
widget=forms.Textarea(
attrs={'rows': 5, 'placeholder': 'explanation'}
),
max_length=4000,
help_text='The max length of the text is 4000.'
)
class Meta:
model = Topic
fields = ['subject', 'message', 'slot1', 'slot2', 'slot3']`
这是我的看法。当我说“board.slot2 = True”时,它会将我的 slot2 False 更改为 True。但是我如何在浏览器中更改 slot2
@login_required
def new_topic(request, pk):
board = get_object_or_404(Board, pk=pk)
if request.method == 'POST':
form = NewTopicForm(request.POST)
if form.is_valid():
topic = form.save(commit=False)
topic.board = board
topic.starter = request.user
board.slot2 = True
board.save()
# board.slot3 = False
# board.save()
topic.save()
Post.objects.create(
message=form.cleaned_data.get('message'),
topic=topic,
created_by=request.user
)
return redirect('topic_posts', pk=pk, topic_pk=topic.pk)
else:
form = NewTopicForm()
return render(request, 'new_topic.html', {'board': board, 'form': form})`
这是我的模型
class Board(models.Model):
name = models.CharField(max_length=30, unique=True)
slot1 = models.BooleanField()
slot2 = models.BooleanField()
slot3 = models.BooleanField()
def __str__(self):
return self.name
def get_posts_count(self):
return Post.objects.filter(topic__board=self).count()
def get_last_post(self):
return Post.objects.filter(topic__board=self).order_by('-created_at').first()`
解决方案
推荐阅读
- python - 如何将系统包(即 rospy、std_msgs、geoemtry_msgs)导入使用 python2 的虚拟环境?
- python - python:给数组中的字符串一个整数值
- python - 基于是否有问号的嗖嗖掩码
- selenium - 如何双击列表中具有相同 ID、索引和名称的元素
- java - 相当于 Oracle DB SQL 中的 Number(38)?
- python - 未在 asyncio.gather() 中调用的异步任务执行
- python - VS Code - Jupyter notebook 不会自动选择默认内核
- android - 如何在颤振中设置 dio 包?
- r - R问题在循环中绘图
- android - 使用 kotlin 通过改造向烧瓶服务器发送数据时出现 400 http 错误