Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/drupal/3.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 如何将几个对象分配给一个用户_Python_Django - Fatal编程技术网

Python 如何将几个对象分配给一个用户

Python 如何将几个对象分配给一个用户,python,django,Python,Django,我想有一个对象(订单)列表(另一个列表,另一个用户)模板页。就像一对多的关系。我需要在哪里定义对象(顺序)(例如按id:order\U id=1和order\U id=3)分配给id=1的用户(驱动程序)等 我试图创建一个驱动程序类,然后像这样按顺序设置一个驱动程序类 form.py class OrderForm(forms.Form): telephone_regex = RegexValidator(regex=r'^\+?1?\d{9,15}$', message="Pho

我想有一个对象(订单)列表(另一个列表,另一个用户)模板页。就像一对多的关系。我需要在哪里定义对象(顺序)(例如按id:order\U id=1和order\U id=3)分配给id=1的用户(驱动程序)等

我试图创建一个驱动程序类,然后像这样按顺序设置一个驱动程序类

form.py

class OrderForm(forms.Form):

    telephone_regex =   RegexValidator(regex=r'^\+?1?\d{9,15}$', message="Phone number must be entered in the format: '+999999999'.")


    airport         =   forms.ChoiceField(choices=AIRPORT_CHOICES)                 ### Jeśli lotnisko jest celem podróży
    direction       =   forms.ChoiceField(choices=DIRECTION_CHOICES)                ## to pick_up < plane i odwrotnie!!!
    adress          =   forms.CharField()
    client          =   forms.CharField()
    telephone       =   forms.CharField(validators=[telephone_regex])
    flight_number   =   forms.CharField()
    plane           =   forms.DateTimeField(input_formats=['%Y-%m-%d'])
    pick_up         =   forms.DateTimeField(input_formats=['%Y-%m-%d'])
    gate            =   forms.CharField()
    company         =   forms.ChoiceField(choices=COMPANY_CHOICES)
    driver          =   forms.ChoiceField(choices=DRIVER_CHOICES)
order_list.html

{% extends "base.html" %}

{% block content %}

{% if user.is_authenticated %}
<h1>Hi {{ user.username }}! Have a good tips!</h1>
{% else %}
<h1>You have to login to see your orders list</h1>
{% endif %}
<table class="table table-dark">
    <thead>
      <tr>
        <th scope="col">#</th>
        <th scope="col">client</th>
        <th scope="col">telephone</th>
        <th scope="col">flight number</th>
      <th scope="col">airport</th>
      <th scope="col">direction</th>
      <th scope="col">adress</th>
      <th scope="col">gate</th>
      <th scope="col">plane</th>
      <th scope="col">pick up</th>

      </tr>
    </thead>
  {% for order in orders %}
    <tbody>
      <tr>
        <th scope="row">{{ order.id }}</th>
        <td>{{ order.client }}</td>
        <td>{{ order.telephone }}</td>
        <td>{{ order.flight_number }}</td>
      <td>{{ order.airport }}</td>
      <td>{{ order.direction }}</td>
      <td>{{ order.adress }}</td>
      <td>{{ order.gate }}</td>
      <td>{{ order.plane }}</td>
      <td>{{ order.pick_up }}</td>
      <td>{{ order.driver }}</td>
      </tr>
   </tbody>
   {% endfor %}
</table>


{% endblock %}
当我可以输入新订单并选择驱动程序时,我希望得到表单,但我得到的是:


/add\u order/
添加视图该表单中的驱动程序选项是什么?既然模型字段是外键,为什么在那里使用ChoiceField而不是ModelChoiceField?(在任何情况下,为什么要使用手动表单而不是ModelForm,后者将为您定义所有这些字段,并为您提供一个保存方法来创建订单?)
{% extends "base.html" %}

{% block content %}

{% if user.is_authenticated %}
<h1>Hi {{ user.username }}! Have a good tips!</h1>
{% else %}
<h1>You have to login to see your orders list</h1>
{% endif %}
<table class="table table-dark">
    <thead>
      <tr>
        <th scope="col">#</th>
        <th scope="col">client</th>
        <th scope="col">telephone</th>
        <th scope="col">flight number</th>
      <th scope="col">airport</th>
      <th scope="col">direction</th>
      <th scope="col">adress</th>
      <th scope="col">gate</th>
      <th scope="col">plane</th>
      <th scope="col">pick up</th>

      </tr>
    </thead>
  {% for order in orders %}
    <tbody>
      <tr>
        <th scope="row">{{ order.id }}</th>
        <td>{{ order.client }}</td>
        <td>{{ order.telephone }}</td>
        <td>{{ order.flight_number }}</td>
      <td>{{ order.airport }}</td>
      <td>{{ order.direction }}</td>
      <td>{{ order.adress }}</td>
      <td>{{ order.gate }}</td>
      <td>{{ order.plane }}</td>
      <td>{{ order.pick_up }}</td>
      <td>{{ order.driver }}</td>
      </tr>
   </tbody>
   {% endfor %}
</table>


{% endblock %}
class OrderView(View):

    def get(self, request, id):
        orders = Order.objects.get(id=id)
        users = User.object.get(id=id)
        ctx = {
            'orders': orders,
            'users': users
        }
        return render(request, 'order.html', ctx)


class OrderListView(View):

    def get(self, request):
        form = OrderForm()
        orders = Order.objects.all()
        ctx = {'form': form, 'orders': orders}

        return render(request, 'orders/order_list.html', ctx)


class AddOrderView(View):

    def get(self, request):
        form = OrderForm()
        return render(request, 'orders/add_order.html', {'form': form})

    def post(self, request, *args, **kwargs):
        form = OrderForm(request.POST)
        if form.is_valid():
            order = Order.objects.create(airport=form.cleaned_data['airport'],
                                         direction=form.cleaned_data['direction'],
                                         adress=form.cleaned_data['adress'],
                                         client=form.cleaned_data['client'],
                                         telephone=form.cleaned_data['telephone'],
                                         flight_number=form.cleaned_data['flight_number'],
                                         plane=form.cleaned_data['plane'],
                                         pick_up=form.cleaned_data['pick_up'],
                                         gate=form.cleaned_data['gate'],
                                         driver=form.cleaned_data['driver'])

        return render(request, 'orders/add_order.html', {'form': form})