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种不同的方式将其用作表单

  • 基于类的通用视图-方便的django快捷方式。基本上,您只需创建如下视图:
  • class AddPlaceView(CreateView):
    模型=地点
    
    有关一般视图的更多信息:

    • 教程:
    • 一些类api参考:
  • 带模型表单的基于功能的视图-基于模型定义模型表单,然后将其推送到视图中的上下文中
  • class PlaceForm(forms.ModelForm):
    类元:
    模型=地点
    fields=“\uuuu all\uuuuuu”
    
    然后是视图部分

    def some_视图(请求):
    form=PlaceForm()
    返回呈现(请求'some_form.html',{'form':form})
    
  • 第三种选择是基于函数的视图,具有常规形式的解决方案同上,但使用手动表单字段定义(不基于模型)
  • HTML部分-django模板 在前面的步骤之后,在模板上下文中应该有一个
    表单
    变量。 首先,在你的头脑中包含以下内容:

    {% 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表单字段,不仅在我的软件包中我不知道该说什么?它起作用了!你让我开心,西蒙!