gpt4 book ai didi

javascript - 预期的 str 实例,发现 BoundField (Django)

转载 作者:行者123 更新时间:2023-11-30 14:07:21 24 4
gpt4 key购买 nike

  • Django 版本:2.0
  • python :3.7
  • jquery : 3.3.1
  • Bootstrap :3.3.7

我正在对我的 Django 表单实现 ajax。为此,我正在关注 this教程。但是,当我单击新书按钮或更新按钮时出现奇怪的错误。

“预期的 str 实例,已找到 BoundField”

不是打开模式,而是只显示一条小线。

enter image description here

完整追溯

Request Method: GET
Request URL: http://127.0.0.1:8000/users/book/create/

Django Version: 2.1.2
Python Version: 3.7.2
Installed Applications:
['users.apps.UsersConfig',
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'bootstrap_modal_forms',
'main',
'first_app',
'campaign',
'invoice',
'taggit',
'taggit_selectize',
'rest_framework',
'django_filters',
'django_extensions',
'shop',
'search',
'cart',
'orders',
'widget_tweaks']
Installed Middleware:
('whitenoise.middleware.WhiteNoiseMiddleware',
'django.middleware.security.SecurityMiddleware',
'whitenoise.middleware.WhiteNoiseMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.common.CommonMiddleware',
'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
'django.middleware.clickjacking.XFrameOptionsMiddleware')


Template error:
In template C:\Users\HP\Desktop\Crowdsocial\templates\partial_book_form.html, error at line 3
sequence item 7: expected str instance, BoundField found
1 : {% load widget_tweaks %}
2 :
3 : {% for field in form %}
4 : <div class="form-group{% if field.errors %} has-error{% endif %}">
5 : <label for="{{ field.id_for_label }}">{{ field.label }}</label>
6 : {% render_field field class="form-control" %}
7 : {% for error in field.errors %}
8 : <p class="help-block">{{ error }}</p>
9 : {% endfor %}
10 : </div>
11 : {% endfor %}
12 :

Traceback:

File "C:\python3\Lib\site-packages\django\core\handlers\exception.py" in inner
34. response = get_response(request)

File "C:\python3\Lib\site-packages\django\core\handlers\base.py" in _get_response
126. response = self.process_exception_by_middleware(e, request)

File "C:\python3\Lib\site-packages\django\core\handlers\base.py" in _get_response
124. response = wrapped_callback(request, *callback_args, **callback_kwargs)

File "C:\Users\HP\Desktop\Crowdsocial\users\views.py" in create_book
194. return save_book_form(request, form, 'partial_book_create.html')

File "C:\Users\HP\Desktop\Crowdsocial\users\views.py" in save_book_form
178. data['html_form'] = render_to_string(template_name, context, request=request)

File "C:\python3\Lib\site-packages\django\template\loader.py" in render_to_string
62. return template.render(context, request)

File "C:\python3\Lib\site-packages\django\template\backends\django.py" in render
61. return self.template.render(context)

File "C:\python3\Lib\site-packages\django\template\base.py" in render
171. return self._render(context)

File "C:\python3\Lib\site-packages\django\template\base.py" in _render
163. return self.nodelist.render(context)

File "C:\python3\Lib\site-packages\django\template\base.py" in render
937. bit = node.render_annotated(context)

File "C:\python3\Lib\site-packages\django\template\base.py" in render_annotated
904. return self.render(context)

File "C:\python3\Lib\site-packages\django\template\loader_tags.py" in render
188. return template.render(context)

File "C:\python3\Lib\site-packages\django\template\base.py" in render
173. return self._render(context)

File "C:\python3\Lib\site-packages\django\template\base.py" in _render
163. return self.nodelist.render(context)

File "C:\python3\Lib\site-packages\django\template\base.py" in render
937. bit = node.render_annotated(context)

File

render_annotated 中的“C:\python3\Lib\site-packages\django\template\base.py” 904. 返回 self.render(context)

渲染中的文件“C:\python3\Lib\site-packages\django\template\defaulttags.py” 216. 返回 mark_safe(''.join(nodelist))

异常类型:TypeError at/users/book/create/异常值:序列项 7:预期的 str 实例,找到 BoundField

urls.py

urlpatterns = [
path('book_list/', views.book_list, name='book_list'),
path('book/create/', views.create_book, name='book_create'),
path('<int:pk>/book/update/', views.book_update, name='book_update'),
path('<int:pk>/book/delete/', views.book_delete, name='book_delete'),
]

表单.py

class EducationForm(forms.ModelForm):

class Meta:
model = Education

fields = ['degree','school','edu_start_date','edu_end_date']

观看次数

def save_book_form(request, form, template_name):
data = dict()
if request.method == 'POST':
if form.is_valid():
form.save()
data['form_is_valid'] = True
books = Education.objects.all()
data['html_book_list'] = render_to_string('profile_settings.html', request, {
'books': books
})
else:
data['form_is_valid'] = False
context = {'form': form}
data['html_form'] = render_to_string(template_name, context, request=request)
return JsonResponse(data)

def create_book(request):
if request.method == 'POST':
form = EducationForm(request.POST)
else:
form = EducationForm()
return save_book_form(request, form, 'partial_book_create.html')

def book_list(request):
books = Education.objects.all()
return render(request, 'book_list.html', {'books': books})

模板

partial_book_form.html

{% load widget_tweaks %}

{% for field in form %}
<div class="form-group{% if field.errors %} has-error{% endif %}">
<label for="{{ field.id_for_label }}">{{ field.label }}</label>
{% render_field field class="form-control" %}
{% for error in field.errors %}
<p class="help-block">{{ error }}</p>
{% endfor %}
</div>
{% endfor %}

book_list.html

{% extends 'base.html' %}

{% load static %}

{% block javascript %}
<script src="{% static 'books/js/books.js' %}"></script>
{% endblock %}

{% block content %}
<h1 class="page-header">Books</h1>

<p>
<button type="button" class="btn btn-primary js-create-book" data-url="{% url 'users:book_create' %}">
<span class="glyphicon glyphicon-plus"></span>
New book
</button>
</p>

<table class="table" id="book-table">
<thead>
<tr>
<th>#</th>
<th>Degree</th>
<th>School</th>
<th>Start Date</th>
<th>End date</th>
</tr>
</thead>
<tbody>
{% include 'partial_book_list.html' %}
</tbody>
</table>

<div class="modal fade" id="modal-book">
<div class="modal-dialog">
<div class="modal-content">

</div>
</div>
</div>
{% endblock %}

partial_book_create.html

<form method="post" action="{% url 'users:book_create' %}" class="js-book-create-form">
{% csrf_token %}
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
<span aria-hidden="true">&times;</span>
</button>
<h4 class="modal-title">Create a new book</h4>
</div>
<div class="modal-body">
{% include 'partial_book_form.html' %}
</div>
<div class="modal-footer">
<button type="button" class="btn btn-default" data-dismiss="modal">Close</button>
<button type="submit" class="btn btn-primary">Create book</button>
</div>
</form>

partial_update_form.html

<form method="post" action="{% url 'users:book_update' form.instance.pk %}" class="js-book-update-form">
{% csrf_token %}
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
<span aria-hidden="true">&times;</span>
</button>
<h4 class="modal-title">Update book</h4>
</div>
<div class="modal-body">
{% include 'partial_book_form.html' %}
</div>
<div class="modal-footer">
<button type="button" class="btn btn-default" data-dismiss="modal">Close</button>
<button type="submit" class="btn btn-primary">Update book</button>
</div>
</form>

最佳答案

通过更新 django-widget-tweaks 库解决了这个问题。

https://pypi.org/project/django-widgets-improved/

关于javascript - 预期的 str 实例,发现 BoundField (Django),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55131035/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com