Ich benutze Python + MongoDB (MongoEngine) für eine einfache Reservierung basierte Anwendung.ObjectID von mongodb Elementen aus HTML-Vorlage in Django
Die Anwendung hat zwei Modelle: Restaurants und Reservierungen.
class Restaurant(Document):
name = StringField(max_length=200, required=True)
location = StringField(max_length=200, required=True)
class Reservation(Document):
restaurant_id = ReferenceField(Restaurant, reverse_delete_rule=CASCADE)
time = IntField(min_value=1, required = True)
number_of_people = IntField(min_value=1, required = True)
Reservierungen haben ein ReferenceField zu Restaurants. [MongoEngine mit DBRef intern]
Jetzt, wenn ich die Liste der Restaurants rendern, muss ich eine Option der Reservierung entsprechend jedem Restaurant geben. In der Django-Vorlage, die der Liste der Restaurants entspricht, habe ich alle drei Felder des Restaurantelements aufgenommen: restaurant.id restaurant.name und restaurant.location.
Im Folgenden ist die Vorlage Restaurant Liste.
{% extends "base.html" %}
{% block content %}
{% for restaurant in restaurant_list %}
<div style="margin-bottom: 20px;">
<h4>{{ restaurant.name }}</h4>
<h4>{{ restaurant.location }}</h4>
<a href="{{ restaurant.get_reserve_url }}" class="btn btn-small">Reserve Table</a>
</div>
{% endfor %}
`{% endblock%}
Nun, wenn ein Benutzer auf Reserve klickt, muss ich ein Formular erstellen (mit Create und forms.Forms von Django).
Aber das Problem ist, dass zum Speichern der Formulardaten (d. H. Ein Eintrag in der Reservierung Sammlung von MongoDB) ich das Referenzobjekt des Restaurants benötigen. Wie kann ich das bekommen?