Python 无法在django映射框位置字段django中显示数据
我希望你们都很棒! 我正在尝试这个模块 我很困惑如何使用这个模块在下面的注册表中添加一个字段Python 无法在django映射框位置字段django中显示数据,python,django,django-rest-framework,django-views,django-forms,Python,Django,Django Rest Framework,Django Views,Django Forms,我希望你们都很棒! 我正在尝试这个模块 我很困惑如何使用这个模块在下面的注册表中添加一个字段 {% extends "base.html" %} {% block content %} <h1>Create Auction</h1> <div class="wrapper"> <form action="{% url 'auctions:create' %}" method=&quo
{% extends "base.html" %}
{% block content %}
<h1>Create Auction</h1>
<div class="wrapper">
<form action="{% url 'auctions:create' %}" method="post" enctype="multipart/form-data">
{% csrf_token %}
{% if error_message %}<p class="error"><strong>{{ error_message }}</strong></p>{% endif %}
<span>Enter title:</span>
<span class="required_field" >*</span>
<br>
<input class="textbox" type="text" name="title">
<br>
<br>
<span>Enter description:</span>
<br>
<input class="description_box" type="text" name="description">
<br>
<br>
<span>Upload picture:</span>
<br>
<input class="textbox" type="file" accept="image/*" name="image">
<br>
<br>
<span>Enter minimum value:</span>
<span class="required_field" >*</span>
<br>
<input class="textbox" type="text" name="min_value">
<br>
<br>
<input type="submit" class="submit_button" name="submit_button" value="Create">
</form>
</div>
{% endblock %}
{%extends“base.html”%}
{%block content%}
创建拍卖
{%csrf_令牌%}
{%if error\u message%}{{{error\u message}}{%endif%}
输入标题:
*
输入说明:
上传图片:
输入最小值:
*
{%endblock%}
我试图在我的表格中添加这个,但它不起作用,没有显示
<form method="post"> {% csrf_token %}
{{form}}
<input type="submit" value="submit">
</form>
{{ form.media }}
{%csrf\u令牌%}
{{form}}
{{form.media}
非常感谢 我不知道您对django表单了解多少,但如果您的代码在管理面板中工作,那么我想您使用了一个模型字段 模型字段定义(可选) 因此,假设您有一个带有
location
字段的模型Place
。大概是这样的:
{{ form.location.errors }}
{{ form.location.label_tag }}
{{ form.location }}
上课地点(models.Model):
位置=位置字段()
如果你有明显不同的设置-只要让我知道,并将尝试适应。但基本上你也可以创建一个没有模型的表单
表单定义
在这种情况下,您有3种不同的方式将其用作表单
class AddPlaceView(CreateView):
模型=地点
有关一般视图的更多信息:
- 教程:
- 一些类api参考:
class PlaceForm(forms.ModelForm):
类元:
模型=地点
fields=“\uuuu all\uuuuuu”
然后是视图部分
def some_视图(请求):
form=PlaceForm()
返回呈现(请求'some_form.html',{'form':form})
表单
变量。
首先,在你的头脑中包含以下内容:
{% load mapbox_location_field_tags %}
{% location_field_includes %}
{% include_jquery %}
然后你必须呈现这个表单。您发布的代码是实现这一点的最简单方法,但前提是您需要所有表单的最简单行为,并且所有表单字段都是使用django表单定义的:
<form method="post">
{% csrf_token %}
{{form}}
<input type="submit" value="submit">
</form>
{{ form.media }}
不要忘记附加窗体的媒体:
{{ form.media }}
一些更完整的html代码示例:
{% extends "base.html" %}
{% block content %}
{# should be in head, but will probably work also this way #}
{% load mapbox_location_field_tags %}
{% location_field_includes %}
{% include_jquery %}
{# #}
<form method="post">
{% csrf_token %}
{# some of your custom html #}
<span>Enter title:</span>
<span class="required_field">*</span>
<br>
<input class="textbox" type="text" name="title">
<br>
<br>
<span>Enter description:</span>
<br>
<input class="description_box" type="text" name="description">
<br>
<br>
{# and only one field generated with django forms mechanism #}
{{ form.location.errors }}
{{ form.location.label_tag }}
{{ form.location }}
<input type="submit" value="submit">
</form>
{# forms media #}
{{ form.media }}
{% endblock %}
{%extends“base.html”%}
{%block content%}
{#应该在头部,但可能也会以这种方式工作#}
{%加载映射框\位置\字段\标记%}
{%location\字段\包含%}
{%include\u jquery%}
{# #}
{%csrf_令牌%}
{#一些自定义html#}
输入标题:
*
输入说明:
{#并且只有一个用django生成的字段形成机制#}
{{form.location.errors}
{{form.location.label_tag}
{{form.location}}
{形式媒体}
{{form.media}
{%endblock%}
关于django表单的更多信息,以及关于在官方文档上手动呈现的信息:
希望你会发现这个答案很有用
编辑:-回答第二个问题:
在
form=PlaceForm()
place之后,您可以在视图函数中动态编辑属性,例如:form.fields[“location”].widget.map_attrs['center']=(0,0)
当然,用您的字段名替换
“location”
,用所需的中心地理坐标替换(0,0)
。好吧,它应该可以正常工作。你用什么浏览器?同时告诉我这个按钮在演示网站中是否有效:关于我的位置按钮:您应该检查浏览器开发人员工具中的javascript控制台输出,并查找一些警告或消息。这种情况可能是,当应用程序的GPS位置请求是不安全的HTTP连接而不是HTTPS(因此基本上总是在本地主机上)时,某些浏览器会阻止该应用程序的GPS位置请求。据我所知,safari可以在form=PlaceForm()
place之后在视图函数中动态编辑属性,例如:form.fields[“location”].widget.map\u attrs['center']=(0,0)
当然,用字段名替换“location”和(0,0)对于所需的中心坐标,这实际上是一个很好的问题,而且该解决方案适用于所有Django表单字段,不仅在我的软件包中我不知道该说什么?它起作用了!你让我开心,西蒙!