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