python-3.x - 如何设置表单的下拉选项并添加图片,而不是使用 Django 的通用列表
问题描述
我想在尝试提交表单时拥有用户的个人资料图片和数据库中的值。目前,表单只有一个下拉列表,列出了数据库中所有对象的 id,例如:
对象 (1) 对象 (2) 对象 (3) 对象 (4) 对象 (5)
我希望下拉列表具有:
用户名,个人资料图片(他们来自静态文件的实际图像),对象 1 的字符串(数据库中的实际内容) 用户名,个人资料图片(他们来自静态文件的实际图像),对象 2 的字符串(数据库中的实际内容)用户名,个人资料图片(他们来自静态文件的实际图像),对象 3 的字符串(实际在数据库中的内容)用户名,个人资料图片(他们来自静态文件的实际图片),对象 4 的字符串(实际在数据库中的内容)用户名,个人资料图片(他们的实际图片来自静态文件),对象 5 的字符串(数据库中的实际内容)
这是一些代码,我愿意接受任何 python 解决方案(crispy/widget/etc.)
我的表格.py
from django.contrib.auth import get_user_model
from .models import Observation, Data, Hypothesis, Experiment, Comment
User = get_user_model()
class SubmitObservation(ModelForm):
description = forms.CharField(widget=forms.Textarea, label='Submit an Observation')
class Meta:
model = Observation
fields = ('description',)
exclude = ('user', 'status', 'activate_date', 'deactivate_date')
#observation = forms.CharField(label='Observation', max_length=250)
class SubmitData(ModelForm):
data_description = forms.CharField(widget=forms.Textarea, label='Data')
class Meta:
model = Data
fields = ('data_description',)
class SubmitHypothesis(ModelForm):
hypo_description = forms.CharField(widget=forms.Textarea, label='Hypothesis')
class Meta:
model = Hypothesis
fields = ('hypo_description',)
class SubmitExperiment(ModelForm):
exp_description = forms.CharField(widget=forms.Textarea, label='Experiment')
class Meta:
model = Experiment
fields = ('exp_description',)
class SubmitSocialMethod(ModelForm):
conclusion = forms.CharField(widget=forms.Textarea, label='', required=False)
class Meta:
model = Comment
fields = ('data', 'hypothesis', 'experiment', 'conclusion',)
我的模型.py
from django.db import models
from django_extensions.db.models import TimeStampedModel, ActivatorModel
from django.utils.translation import ugettext_lazy as _
from django.contrib.auth import get_user_model
User = get_user_model()
class Observation(TimeStampedModel, ActivatorModel):
user = models.ForeignKey(
"user.User", verbose_name=_("User"),
related_name="observations",
on_delete=models.CASCADE
)
description = models.CharField(_("Description"), max_length=250)
class Data(TimeStampedModel, ActivatorModel):
user = models.ForeignKey(
"user.User", verbose_name=_("User"),
on_delete=models.SET_NULL,
blank=True, null=True
)
data_description = models.CharField(_("Data"), max_length=250, null=False, blank=False)
class Experiment(TimeStampedModel, ActivatorModel):
user = models.ForeignKey(
"user.User", verbose_name=_("User"),
on_delete=models.SET_NULL,
blank=True, null=True
)
exp_description = models.CharField(_("Experiment"), max_length=250, null=False, blank=False)
class Hypothesis(TimeStampedModel, ActivatorModel):
user = models.ForeignKey(
"user.User", verbose_name=_("User"),
on_delete=models.SET_NULL,
blank=True, null=True
)
hypo_description = models.CharField(_("Hypothesis"), max_length=250, null=False, blank=False)
class Comment(TimeStampedModel, ActivatorModel):
user = models.ForeignKey(
"user.User", verbose_name=_("User"),
related_name="comments",
on_delete=models.CASCADE
)
observation = models.ForeignKey(
"newsfeed.Observation", verbose_name=_("Observation"),
on_delete=models.CASCADE
)
data = models.ForeignKey(
"newsfeed.Data", verbose_name=_("Data"),
on_delete=models.SET_NULL, null=True, blank=True
)
experiment = models.ForeignKey(
"newsfeed.Experiment", verbose_name=_("Experiment"),
on_delete=models.SET_NULL, null=True, blank=True
)
hypothesis = models.ForeignKey(
"newsfeed.Hypothesis", verbose_name=_("Hypothesis"),
on_delete=models.SET_NULL, null=True, blank=True
)
conclusion = models.CharField(_("Conclusion"), max_length=250, null=True, blank=True)
解决方案
推荐阅读
- c++ - 带头节点的循环双向链表
- python - Python Web 抓取“无”
- python - 我可以在 python 中隐藏代码的某些部分吗?
- pdf - pe:documentViewer 不显示 PDF 中的数字签名
- json - 显示空值的字段值
- java - Spring boot java google app engine添加kotlin报错
- javascript - Firebase Safari 谷歌身份验证
- python - mypy Union[Fraction,int] 奇怪的推理行为
- javascript - 为什么 google chrome 的 javascript 焦点和强制状态焦点之间有区别?
- c++ - 为什么 GCC 在包含文件夹中找不到头文件?