首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

在Django中传递和接收object pk来修复CreateView中的外键字段

,可以通过以下步骤来实现:

  1. 首先,确保你的模型中有一个外键字段,用于关联到其他模型。例如,假设我们有一个名为Order的模型,其中包含一个外键字段customer,关联到Customer模型。
  2. 在创建CreateView视图类时,可以通过重写get_context_data()方法来传递object pk到模板中。在get_context_data()方法中,我们可以获取到object pk的值,并将其传递给模板。代码示例如下:
代码语言:txt
复制
from django.views.generic import CreateView
from .models import Order

class OrderCreateView(CreateView):
    model = Order
    fields = ['customer']

    def get_context_data(self, **kwargs):
        context = super().get_context_data(**kwargs)
        context['customer_pk'] = self.kwargs.get('pk') # 获取object pk的值
        return context
  1. 接下来,在模板中,我们可以通过在URL模式中指定object pk来传递值给视图,并在表单中使用该值。代码示例如下:
代码语言:txt
复制
<!-- urls.py -->
from django.urls import path
from .views import OrderCreateView

app_name = 'orders'
urlpatterns = [
    path('create/<int:pk>/', OrderCreateView.as_view(), name='order_create'),
]

<!-- order_form.html -->
<form method="post">
  {% csrf_token %}
  {{ form.as_p }}
  <input type="hidden" name="customer" value="{{ customer_pk }}">
  <button type="submit">Submit</button>
</form>

在上述示例中,我们通过URL的<int:pk>部分来传递object pk的值,并在模板中使用customer_pk来表示该值。

通过以上步骤,我们可以在Django中传递和接收object pk来修复CreateView中的外键字段。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

领券