,,,,,python,django-models,django-rest-framework,django-views,django-templates"/>

首页 > 解决方案 > 无法分配“,,,,

问题描述

当我单击 detail.html 中的“加入”按钮时,出现以下错误。按下按钮时,我想将视图中写入的内容保存在数据库中。我该如何解决这个问题?如果您能回复我将不胜感激。

/join/element_detail/ 处的 ValueError 无法分配“<QuerySet [<Designated: 1>, <Designated: 2>, <Designated: 3>, <Designated: 4>, <Designated: 5>, <Designated: 6>, <指定:7>、<指定:8>、<指定:9>]>":“Element.designated_code”必须是“指定”实例。请求方法:POST 请求 URL: http: //127.0.0.1 :8000/join/element_detail/ Django 版本:3.1.5 异常类型:ValueError 异常值:无法分配“<QuerySet [<Designated: 1>, <Designated: 2 >、<指定:3>、<指定:4>、<指定:5>、<指定:6>、<指定:7>、<指定:8>、<指定:9>]>":"元素。指定代码”必须是“

视图.py

from django.shortcuts import render

# Create your views here.
from zeronine.forms import ElementForm
from zeronine.models import *


def element_detail(request):
    designated_object = Designated.objects.all()
    element_object = Element.objects.all()
    value_object = Value.objects.all()

    if request.method == "POST":
        form = ElementForm(request.POST)

        if form.is_valid():
            element = Element()
            element.value_code = form.cleaned_data['value_code']
            element.designated_code = designated_object
            element.save()

    if request.method == "POST":
            join = Join()
            join.product_code = request.GET.get('product_code')
            join.username = request.user
            join.part_date = request.GET.get('part_date')
            join.save()


            return render(request, 'zeronine/list.html')

    else:
        form = ElementForm()

    return render(request, 'zeronine/detail.html', {'form': form,
                                                    'designated_object': designated_object,
                                                    'element_object': element_object,
                                                    'value_object': value_object})

详细信息.html

{% extends 'base.html' %}
{% block title %} 상품 상세보기 {% endblock %}
{% block content %}

<div class="container">
    <div class="row">
        <div class="col-4">
        <img src="{{product.image.url}}" width="190%" style="margin-top: 100px;">
    </div>
        <div class="text-center col" style="margin-top:150px; margin-left:200px;">
            <b><h4 class="content" style="margin-bottom: -5px;"><b>{{product.name}}</b></h4></b>
            <br>

                    <div>
<!--                        <span>주최자 : <b>{{ product.username }}</b></span><br>-->
                        <span style="color: #111111">모집기간 : <b>{{ product.start_date }} ~ {{ product.due_date }}</b></span>
                    </div>
                    <hr style="margin-top: 30px; margin-bottom: 30px;">

            <p><span class="badge badge-dark">가격&lt;/span>
            {% load humanize %}
                 {% for designated in designated_object %}
                        {% if designated.product_code.product_code == product.product_code %}
                            {{designated.price | floatformat:'0' | intcomma }}원
                        {% endif %}
                    {% endfor %}</p>


            <span class="badge badge-dark">목표금액</span> {{ product.target_price | floatformat:'0' | intcomma }}원 <br><br>

            <p class="badge badge-dark">공동구매 취지
                {{product.benefit|linebreaks}}</p>
            <p class="badge badge-dark">상세설명
                {{product.detail|linebreaks}}</p>


<div class="container my-4">

    <div class="col-12">
        <form method="POST" style="margin-left: 110px;" action="{% url 'zeronine:element_detail' %}">
                    <div class="form-group row">
                        <label for="value_code" class="col-sm-2 col-form-label"><b>옵션</b></label>
                        <div class="col-sm-5">
                            <select type="text" class="form-control" name="value_code" id="value_code">
                                {% for value in value_object %}
                                {%if value.product_code == product %}
                                    <option value="{{value.value_code}}">{{value.name}}</option>
                                    {% endif %}
                                {% endfor %}
                            </select>
                        </div>
                    </div>

                {% csrf_token %}
                 {% if not user.is_authenticated %}
                <a onclick="alert('로그인 후 참여가 가능합니다.');" style="cursor:pointer;">
                    <button type="submit" style="background:black; border-color:black;" class="btn btn-primary">&nbsp;참여하기</button></a>

                <a onclick="alert('로그인 후 찜하기가 가능합니다.');" style="cursor:pointer;">
                    <button type="submit" style="background:white; color:black; border-color:black;" class="btn btn-primary">찜하기&lt;/button></a>

                  {% else %}
                <a onclick="alert('{{ product.name }} 공동구매 참여가 완료되었습니다.');" style="cursor:pointer;">
                    <button type="submit" action="{% url 'zeronine:element_detail' %}" style="background:black; border-color:black;" class="btn btn-primary">&nbsp;참여하기</button></a>
                <a onclick="alert('{{ product.name }} 상품을 찜했습니다.');" style="cursor:pointer;">
                    <button type="submit" style="background:white; color:black; border-color:black;" class="btn btn-primary">찜하기&lt;/button></a>
                  {% endif %}
            </form>
                            </form>
                </div>
            </div>
        </div>
    </div>
</div>

{% endblock %}

标签: pythondjango-modelsdjango-rest-frameworkdjango-viewsdjango-templates

解决方案


推荐阅读