- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我对 django 很陌生(使用 django 2.1.5 和 python 3.7),我似乎不知道如何添加一个下拉菜单,显示我的 postgresql 数据库中的表中的一个字段的元素。我希望最终允许用户从下拉菜单中选择一个元素,我将使用该选择构建一个查询并返回该查询的结果。但我已经被下拉菜单困住了。这是 models.py 文件中的我的模型
class Locations(models.Model):
gid = models.AutoField(primary_key=True)
field_gid = models.BigIntegerField(db_column='__gid', blank=True, null=True) # Field renamed because it contained more than one '_' in a row. Field renamed because it started with '_'.
name_location= models.CharField(unique=True, max_length=254, blank=True, null=True)
x = models.DecimalField(max_digits=10, decimal_places=2, blank=True, null=True)
y = models.DecimalField(max_digits=10, decimal_places=2, blank=True, null=True)
z = models.DecimalField(max_digits=10, decimal_places=2, blank=True, null=True)
geom = geomodels.PointField(srid=3912)
def __str__(self):
return self.name_location
class Meta:
managed = False
db_table = 'locations'
verbose_name_plural = "Locations"
这是 forms.py 文件中我的表单:
from .models import Locations
class LocationsForm(forms.ModelForm):
class Meta:
model = Locations
fields = ('name_location',)
#Down here is what I actually thought I need, but maybe I am not using it right
locations_list = forms.ModelChoiceField(queryset=Locations.objects.all().only('name_location').order_by('name_location'))
然后,在我的views.py 文件中:
from .forms import LocationsForm
def LocationsView(request):
form = LocationsForm
return render(request, 'geoportal/mforest.html', {'form': form})
我的urls.py如下:
from django.urls import path
from . import views
urlpatterns = [
path('', views.home, name='geoportal-home'),
path('mforest/', views.LocationsView, name='geoportal-mforest')
]
最后在我的模板 mforest.html 文件中(我只放置了一个摘录,因为 base.html 有一个我在 mforest.html 中扩展的 block 内容):
{% extends "geoportal/base.html" %}
{% block content %}
<div class="col-md-3" style="height: 100vh; border: 2px red; background-color: lightgray">
<h3>Meteo Stations of the SFI</h3>
<form method="GET">
{% csrf_token %}
{{ form }}
</form>
</div>
<div class="col-md-9">
<h3>Output of the query</h3>
<table width="100%" class="blueTable"> </table>
</div>
{% endblock content %}
对于模板文件,我还尝试了一些迭代查询集结果的建议。但是,我尝试过的解决方案都没有显示我的下拉菜单。我确信我做错了什么,因为我没有得到预期的结果,但我不知道该纠正什么。附言。我没有收到错误。它根本不显示任何东西。预先感谢您的帮助!
编辑:更多关于我想要实现的目标,please click here查看我的页面上有什么(尽管几乎什么也没有)。 (不要注意我在这个问题中用“name_location”替换的标签“kraj_odvze”)。现在;我真正想要的是一个下拉菜单,其中包含数据库中“name_location”字段中的元素,而不是文本框。我将进一步包括一个日期时间范围选择器和一个按钮来执行查询以在页面的右侧 div 上呈现为表格和图形。
最佳答案
感谢@art06的评论,我明白了这个问题。由于我要查询另一个表(“Meteo”),该表有一列表示指向“Locations”表的“name_location”列的外键,因此我应该使用“Meteo”表而不是“Locations” .
因此,models.py 文件如下:
class Locations(models.Model):
gid = models.AutoField(primary_key=True)
field_gid = models.BigIntegerField(db_column='__gid', blank=True, null=True) # Field renamed because it contained more than one '_' in a row. Field renamed because it started with '_'.
name_location = models.CharField(unique=True, max_length=254, blank=True, null=True)
x = models.DecimalField(max_digits=10, decimal_places=2, blank=True, null=True)
y = models.DecimalField(max_digits=10, decimal_places=2, blank=True, null=True)
z = models.DecimalField(max_digits=10, decimal_places=2, blank=True, null=True)
geom = geomodels.PointField(srid=3912)
def __str__(self): # __unicode__ for py2
return self.name_location
class Meta:
managed = False
db_table = 'locations'
verbose_name_plural = "Locations"
class Meteo(models.Model):
time = models.DateTimeField()
air_temp = models.FloatField(blank=True, null=True)
soil_temp = models.FloatField(blank=True, null=True)
precipitation = models.FloatField(blank=True, null=True)
global_rad = models.FloatField(blank=True, null=True)
relative_hum = models.FloatField(blank=True, null=True)
wind_speed = models.FloatField(blank=True, null=True)
swc = models.FloatField(blank=True, null=True)
pressure = models.FloatField(blank=True, null=True)
location = models.ForeignKey(Locations, models.DO_NOTHING, db_column='location', to_field='name_location') # to_field is required because the Foreignkey field is a text
id = models.BigAutoField(primary_key=True)
class Meta:
managed = False
db_table = 'meteo'
unique_together = (('time', 'id'),)
verbose_name_plural = "Meteo"
和 forms.py 如下:
from django import forms
from .models import Meteo
class LocationsForm(forms.ModelForm):
class Meta:
model = Meteo
fields = ('location',)
通过更改我帖子中的内容,django 将字段格式设置为下拉菜单,并且显示效果良好。
因此,我在这里没有得到的关键点是:即使不编写 ModelChoiceField,当 ModelForm 与外键一起使用时,它也会自动创建一个下拉菜单。
关于python - Django 从 postgresql 数据库填充下拉菜单的完整示例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54720439/
这个问题在这里已经有了答案: 关闭 11 年前。 Possible Duplicate: Sample data for IPv6? 除了 wireshark 在其网站上提供的内容之外,是否有可以下
我正在寻找可以集成到现有应用程序中并使用多拖放功能的示例或任何现成的解决方案。我在互联网上找到的大多数解决方案在将多个项目从 ListBox 等控件拖放到另一个 ListBox 时效果不佳。谁能指出我
我是 GATE Embedded 的新手,我尝试了简单的示例并得到了 NoClassDefFoundError。首先我会解释我尝试了什么 在 D:\project\gate-7.0 中下载并提取 Ga
是否有像 Eclipse 中的 SWT 示例那样的多合一 JFace 控件示例?搜索(在 stackoverflow.com 上使用谷歌搜索和搜索)对我没有帮助。 如果它是一个独立的应用程序或 ecl
我找不到任何可以清楚地解释如何通过 .net API(特别是 c#)使用谷歌计算引擎的内容。有没有人可以指点我什么? 附言我知道 API 引用 ( https://developers.google.
最近在做公司的一个项目时,客户需要我们定时获取他们矩阵系统的数据。在与客户进行对接时,提到他们的接口使用的目前不常用的BASIC 认证。天呢,它好不安全,容易被不法人监听,咋还在使用呀。但是没办法呀,
最近在做公司的一个项目时,客户需要我们定时获取他们矩阵系统的数据。在与客户进行对接时,提到他们的接口使用的目前不常用的BASIC 认证。天呢,它好不安全,容易被不法人监听,咋还在使用呀。但是没办法呀,
我正在尝试为我的应用程序设计配置文件格式并选择了 YAML。但是,这(显然)意味着我需要能够定义、解析和验证正确的 YAML 语法! 在配置文件中,必须有一个名为 widgets 的集合/序列。 .这
你能给我一个使用 pysmb 库连接到一些 samba 服务器的例子吗?我读过有类 smb.SMBConnection.SMBConnection(用户名、密码、my_name、remote_name
linux服务器默认通过22端口用ssh协议登录,这种不安全。今天想做限制,即允许部分来源ip连接服务器。 案例目标:通过iptables规则限制对linux服务器的登录。 处理方法:编
我一直在寻找任何 PostProjectAnalysisTask 工作代码示例,但没有看。 This页面指出 HipChat plugin使用这个钩子(Hook),但在我看来它仍然使用遗留的 Po
我发现了 GWT 的 CustomScrollPanel 以及如何自定义滚动条,但我找不到任何示例或如何设置它。是否有任何示例显示正在使用的自定义滚动条? 最佳答案 这是自定义 native 滚动条的
我正在尝试开发一个 Backbone Marionette 应用程序,我需要知道如何以最佳方式执行 CRUD(创建、读取、更新和销毁)操作。我找不到任何解释这一点的资源(仅适用于 Backbone)。
关闭。这个问题需要details or clarity .它目前不接受答案。 想改进这个问题?通过 editing this post 添加详细信息并澄清问题. 去年关闭。 Improve this
我需要一个提交多个单独请求的 django 表单,如果没有大量定制,我找不到如何做到这一点的示例。即,假设有一个汽车维修店使用的表格。该表格将列出商店能够进行的所有可能的维修,并且用户将选择他们想要进
我有一个 Multi-Tenancy 应用程序。然而,这个相同的应用程序有 liquibase。我需要在我的所有数据源中运行 liquibase,但是我不能使用这个 Bean。 我的应用程序.yml
我了解有关单元测试的一般思想,并已在系统中发生复杂交互的场景中使用它,但我仍然对所有这些原则结合在一起有疑问。 我们被警告不要测试框架或数据库。好的 UI 设计不适合非人工测试。 MVC 框架不包括一
我正在使用 docjure并且它的 select-columns 函数需要一个列映射。我想获取所有列而无需手动指定。 如何将以下内容生成为惰性无限向量序列 [:A :B :C :D :E ... :A
$condition使用说明和 $param在 findByAttributes在 Yii 在大多数情况下,这就是我使用 findByAttributes 的方式 Person::model()->f
我在 Ubuntu 11.10 上安装了 qtcreator sudo apt-get install qtcreator 安装的版本有:QT Creator 2.2.1、QT 4.7.3 当我启动
我是一名优秀的程序员,十分优秀!