Здравствуйте! В Django передача данных из базы данных в функции может быть реализована с помощью вьюсов и форм. Давайте разберем процесс поэтапно.
### 1. Модель
Сначала создайте модель для страны и автомобиля, если ее еще нет. Например, модели могут выглядеть следующим образом:
```python
from django.db import models
class Country(models.Model):
name = models.CharField(max_length=100)
code = models.CharField(max_length=10)
def __str__(self):
return self.name
class Car(models.Model):
name = models.CharField(max_length=100)
country = models.ForeignKey(Country, on_delete=models.CASCADE)
def __str__(self):
return self.name
```
### 2. Форма
При необходимости создайте форму, которая будет использоваться для получения данных от пользователя. Например:
```python
from django import forms
class CarSelectionForm(forms.Form):
country = forms.ModelChoiceField(queryset=Country.objects.all())
```
### 3. Вьюс
Создайте вьюс, который будет обрабатывать форму, получать данные и выбирать случайный автомобиль. Ниже приведен пример:
```python
import random
from django.shortcuts import render
from .models import Car
from .forms import CarSelectionForm
def select_car(request):
selected_car = None
if request.method == 'POST':
form = CarSelectionForm(request.POST)
if form.is_valid():
country = form.cleaned_data['country']
cars = Car.objects.filter(country=country)
if cars.exists():
selected_car = random.choice(cars) # Случайный выбор автомобиля из списка
else:
form = CarSelectionForm()
return render(request, 'select_car.html', {'form': form, 'selected_car': selected_car})
```
### 4. Шаблон
В шаблоне (`select_car.html`) вы можете отобразить форму и выбранный автомобиль:
```html
<form method="post">
{% csrf_token %}
{{ form.as_p }}
<button type="submit">Выбрать автомобиль</button>
</form>
{% if selected_car %}
<h2>Выбранный автомобиль: {{ selected_car.name }}</h2>
{% endif %}
```
### 5. URL
Не забудьте добавить URL в `urls.py`:
```python
from django.urls import path
from .views import select_car
urlpatterns = [
path('select-car/', select_car, name='select_car'),
]
```
### Итог
Таким образом, вы формируете форму, обрабатываете данные и выбираете случайный элемент из базы данных на основе выбора пользователя. Это даст вам возможность динамически взаимодействовать с данными из модели и отображать их в шаблоне.