Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 使用选择框在Django UpdateView中显示产品实例_Python_Django - Fatal编程技术网

Python 使用选择框在Django UpdateView中显示产品实例

Python 使用选择框在Django UpdateView中显示产品实例,python,django,Python,Django,我需要在选择框中显示产品实例。我非常确定我很好地遵循了get_对象和get_初始方法,但是表单似乎没有使用我想要更新的产品启动。还有别的办法吗 型号: class Order(models.Model): options = ( ('Pending', 'Pending'), ('Out for delivery', 'Out for delivery'), ('Delivered', 'Delivered'), )

我需要在选择框中显示产品实例。我非常确定我很好地遵循了get_对象和get_初始方法,但是表单似乎没有使用我想要更新的产品启动。还有别的办法吗

型号:

class Order(models.Model):
    
    options = (

        ('Pending', 'Pending'),
        ('Out for delivery', 'Out for delivery'),
        ('Delivered', 'Delivered'),
    )

    customer = models.ForeignKey(Customer, on_delete=models.CASCADE)
    product = models.ForeignKey(Product, on_delete=models.CASCADE)
    date_created = models.DateTimeField(auto_now_add=True)
    status = models.CharField(choices=options, null=True, max_length=200)

    def __str__(self):
        return self.status

    class Meta:
        ordering = ['-date_created']
我的看法是:

class OrderUpdateView(UpdateView):
    
    model = Order
    form_class = OrderUpdateForm
    template_name = 'crmapp/update-order.html'
    context_object_name = 'order'
    success_url = '/'

    def get_initial(self):
        initial = super(OrderUpdateView, self).get_initial()

        content = self.get_object()
        initial['customer'] = content.customer
        initial['product'] = content.product
        initial['status'] = content.status

        return initial

    def get_object(self, *args, **kwargs):
        product = get_object_or_404(Order, pk=self.kwargs['pk'])
        return product
网址:

 path('update-order/<str:pk>/', OrderUpdateView.as_view(), name='update-order')
path('update-order/',OrderUpdateView.as_view(),name='update-order')
HTML

<div class="container">
<div class="row">
    <div class="col-sm-6 offset-3">
        <br><br><br><br>
            <form action="{% url 'update-order' order.pk %}" method="POST">
                {% csrf_token %}
                {{ form.as_p}}
                <button class="btn btn-primary btn-block" type="submit">Save</button>
            </form>
        <br><br><br><br>
    </div>
</div>





{%csrf_令牌%} {{form.as_p}} 拯救