Как моделировать получить значение из URL или т. Д. - PullRequest
0 голосов
/ 01 мая 2019

У меня есть 2 модели с внешним ключом

Первая модель "Репортер" Вторая модель "Артикул"

Моя статья Добавить URL страницы: IP: 8000 / <<strong> Идентификатор репортера > / add_article /

Моя статья Модель так:

class Article(models.Model):
    headline = models.CharField(max_length=100)
    pub_date = models.DateField()
    reporter = models.ForeignKey(Reporter, on_delete=models.CASCADE)

Я хочу, чтобы в моем шаблоне пользователь мог выбрать заголовок и pub_date ,

но репортер заполнять автоматически по URL и т. Д. Как я могу это сделать?

Мой взгляд;

def addArticle(request,id):
    reporter = get_object_or_404(Reporter,id=id)
    form=AddArticle(request.POST or None)
    if form.is_valid():
        form.save()
        return redirect('ayar')

    context = {"form":form,"reporter":reporter}
    return render(request, "add-article.html", context)

Мои URL:

    path('add-article/<int:id>/',addArticle,name="addArticle"),

Я новичок в Django, и мой уровень английского низкий. Я желаю, чтобы вы поняли меня

Ответы [ 2 ]

0 голосов
/ 01 мая 2019

Следуя вашим взглядам, я думаю, вам просто нужно немного измениться;

if form.is_valid():
    article = form.save(commit=False)
    article.reporter = reporter        # here
    article.save()
    form.save()

    return redirect('ayar')
0 голосов
/ 01 мая 2019

Вы, вероятно, захотите посмотреть на захват URL-адреса в качестве параметра и передачу его вашему «представлению».

Ваше приложение должно иметь urls.py со списком url_patterns. Запись в этом списке может выглядеть примерно так (я добавил 'r' перед идентификатором репортера, иначе этот путь будет совпадать с любым целым числом - просто выбор.)

# urls.py url_patterns = [ path('r<int:r_id>/add_article/', views.Add_article.as_view(), name='add_article'), ]

То, что 'r' будет захватывать строки, такие как r12, разделять их на r и 12, а затем приводить '12' к целому числу.

Затем, по вашему мнению, вы найдете подходящего репортера (надеюсь, он есть):

reporter = Reporters.objects.get(id=r_id)

Вы можете создать статью с: article = Article(content=content, reporter=reporter)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...