Я пытаюсь создать основанное на django веб-приложение, соответствующее требованиям к нагрузке, которое использует «Load details» в модели под названием ShipperBoardModel , где люди (производители) сообщают, что они хотят, чтобы определенные товары куда-то доставлялись и другие люди (так называемые перевозчики), предлагающие на этих должностях свои работы по выбранной цене.
ShipperBoardModel
class ShipperBoardModel(models.Model):
From = models.CharField(max_length=100,null=True)
To = models.CharField(max_length=100,null=True)
Type = models.CharField(max_length=100,null=True)
Length = models.CharField(max_length=100,null=True)
Weight = models.CharField(max_length=100,null=True)
Numberoftrucks = models.IntegerField(null=True)
MaterialType = models.CharField(null=True,max_length=100)
Loadingtime = models.DateTimeField(null=True)
def _str_(self):
return self.Origin
Я создал первую таблицу «нагрузок», где многие люди размещали свои нагрузки на нее, и она отображается на странице «/ load /», где отображаются все активные нагрузки, доступные для участия в торгах.
Я добавил кнопку «Ставить сейчас» рядом с каждой строкой, щелкнув по которой, открывается форма, которая запрашивает у перевозчиков, какую цену они готовы предложить за эту конкретную нагрузку / задачу.
При нажатии «Ставка сейчас» мы получаем предварительно заполненную форму в модале начальной загрузки относительно строки, в которой он находится. Затем транспортер вводит свою ставку для этой задачи / загрузки, которую я хочу сохранить. в другую модель под названием 'SupplierBidModel' .
Я просто хочу выяснить, как сохранить эту цену предложения в этой модели вместе с идентификатором BidID и идентификатором transporterID, который уже есть у каждого перевозчика при регистрации.
Вот форма, за которой следует модель:
class SupplierBidModel(models.Model):
BidID = models.AutoField(primary_key=True)
Load_ID = models.OneToOneField(ShipperBoardModel,on_delete=models.CASCADE)
Supplier_ID = models.OneToOneField(SupplierBoardModel,on_delete=models.CASCADE)
Bid_amount = models.IntegerField(null=True)
У меня есть некоторые данные, сохраненные в моем models.py, и с помощью этой модели я рендеринг таблицы. Теперь для каждой строки я хочу, чтобы пользователь ввел одну запись, которая должна сохранить эти данные в другой модели.
Вот шаблон:
{% block content %}
<table>
{% for item in data %}
<tr>
<th>From</th>
<th>To</th>
<th>Weight</th>
<th>Length</th>
<th>Type</th>
<th>Material Type</th>
<th>Number of Trucks</th>
<th>Loading Time</th>
</tr>
<tr>
<td>{{ item.From }}</td>
<td>{{ item.To }}</td>
<td>{{ item.Weight }}</td>
<td>{{ item.Length }}</td>
<td>{{ item.Type }}</td>
<td>{{ item.MaterialType }}</td>
<td>{{ item.Numberoftrucks }}</td>
<td>{{ item.Loadingtime }}</td>
<td>
<button type="button" class="btn btn-primary btn-lg" data-toggle="modal" data-target="#myModal{{ item.id }}">Bid
now! for id {{ item.id }} </button>
</td>
{# {% endfor %}#}
<div class="modal fade" id="myModal{{ item.id }}" tabindex="-1" role="dialog" aria-labelledby="myModalLabel">
<div class="modal-dialog" role="document">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-label="Close"><span
aria-hidden="true">×</span></button>
<h4 class="modal-title" id="myModalLabel">Modal title</h4>
</div>
<div class="modal-body">
<input class="form-control" id="disabledInput" type="text"
placeholder="Disabled input here..." value="{{ item.To }}" disabled>
<input class="form-control" id="disabledInput" type="text"
placeholder="Disabled input here..." value="{{ item.From }}" disabled>
<input class="form-control" id="disabledInput" type="text"
placeholder="Disabled input here..." value="{{ item.Weight }}" disabled>
<input class="form-control" id="disabledInput" type="text"
placeholder="Disabled input here..." value="{{ item.Length }}" disabled>
<input class="form-control" id="disabledInput" type="text"
placeholder="Disabled input here..." value="{{ item.Type }}" disabled>
<input class="form-control" id="disabledInput" type="text"
placeholder="Disabled input here..." value="{{ item.MaterialType }}" disabled>
<input class="form-control" id="disabledInput" type="text"
placeholder="Disabled input here..." value="{{ item.Numberoftrucks }}" disabled>
<input class="form-control" id="disabledInput" type="text"
placeholder="Disabled input here..." value="{{ item.Loadingtime }}" disabled>
<input class="form-control" id="disabledInput" type="text"
placeholder="Disabled input here...">Bid
</div>
<div class="modal-footer">
<button type="button" class="btn btn-default" data-dismiss="modal">Close</button>
<button type="button" class="btn btn-primary">Save changes</button>
</div>
</div>
</div>
</div>
</tr>
{% endfor %}
</table>
{% endblock %}
Я пока не знаю, как отобразить форму на странице в django, где форма уже существует. Единственный способ визуализации формы, о котором я знаю, это использование метода urls.py:
urlpatterns = [
url(r'supplier', views.supplierboardfun, name='supplierboard'),
url(r'shipper', views.shipperboardfun, name='shipperboard'),
url(r'loads', views.suppliertablefun, name='supplierboardtable')
]
, которая вызывает функцию suppliertablefun ()
def suppliertablefun(request): # function to display shipperboardmodel
data = ShipperBoardModel.objects.all()
return render(request, 'supplierboard/board.html', locals())
Мне, вероятно, не хватает того, как визуализировать несколько форм с разными моделями в django, или как сохранить данные из поля ввода и сохранить их в нужной мне модели вместе с некоторой относительной информацией.