83213


### 前提・実現したいこと

Djangoのポートフォリオサイト作成として、現在、サッカーゲームサイトの作成を目指して、プログラム作成を行っております。

同じ内容で既に [teratail でも質問しています](https://teratail.com/questions/364713)
が、回答が得られなかったこともあり、本サイトに質問させて頂きました。

現在、formsetで何とか出来ないかなど、試行錯誤をしておりますが、未だ解消に至っていない状況です。

質問の仕方や質問内容に不明点があれば、随時ご指摘いただけると幸いです。

宜しくお願い致します。

### 現在発生しているエラー

[code]

    TemplateSyntaxError at /detail/1/edit/
    django.template.exceptions.TemplateSyntaxError: Could not parse the remainder: '`' from 'request.player.pk`'
    
[/code]

**detail_edit.html**

[code]

    {% extends "pes21/base.html" %} {% load widget_tweaks %} {% block content %}
    
    <div class="card card-profile my-5 mx-auto">
      <div class="card-body">
        <h5 class="card-title text-center">選手プロフィール編集</h5>
        <form method="post" action="" enctype="multipart/form-data">
          {% csrf_token %}
          <table class="profile_table mb-4">
            <tbody>
              <tr>
                <th class="header">選手画像</th>
                <td class="data">{{ player_form.player_image }}</td>
              </tr>
              <tr>
                <th class="header">リリース日</th>
                <td class="data form_wrap form_wrap-2">
                  {% render_field player_form.date_field class='form-control' placeholder='リリース日' %}
                </td>
              </tr>
              〜〜省略〜〜
            </tbody>
          　　　　</table>
              <h5 class="card-title text-center">能力編集</h5>
                <table class="profile_table mb-4">
                  <tbody>
                    <tr>
                      <th class="header">オフェンスセンス</th>
                      <td class="data form_wrap form_wrap-2">
                        {% render_field ability_form.offense_sense class='form-control' placeholder='OFセンス' %}
                      </td>
                    </tr>
                    〜〜省略〜〜
                  </tbody>
             </table>
    
             <h5 class="card-title text-center">フォーメーション編集</h5>
                <table class="profile_table mb-4">
                 <tbody>
                  <tr>
                   <th class="header">フォーメーション画像</th>
                   <td class="data">{{ formation_form.formation_images }}</td>
                   </tr>
                 </tbody>
              </table>
    　　　　　　　
              <h5 class="card-title text-center">スキル編集</h5>
                <table class="profile_table mb-4">
                  <tbody>
                  {% for skill_item in skill_form %}
                    <tr>
                      <th class="header">スキル</th>
                      <td class="data form_wrap form_wrap-2">
                        {% render_field skill_item.player_skill class='form-control' placeholder='スキル入力' %}
                      </td>
                    </tr>
                  {% endfor %}
                  </tbody>
                　</table>
    
                <div class="button mx-auto">
                  <button class="btn btn-1g btn-warning btn-block" type="submit">
                    登録する
                  </button>
                </div>
              </form>
            </div>
          </div>
        </form>
      </div>
    </div>
    {% endblock content %}
    
[/code]

**view.py**

[code]

    class PlayerEditView(LoginRequiredMixin, View):
        def get(self, request, *args, **kwargs):
            player_data = Player.objects.get(id=self.kwargs['pk'])
            ability_data = Ability.objects.get(id=self.kwargs['pk'])
            skill_data = Skill.objects.get(id=self.kwargs['pk'])
            formation_data = Formation.objects.get(id=self.kwargs['pk'])
    
    　　　　　　　　　        player_form = PlayerEditForm(
                request.POST or None,
                initial = {
                    'date_field' : player_data.date_field,
    　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　〜〜　省略　〜〜
                })
    
            ability_form = AbilityEditForm(
                request.POST or None,
                initial = {
                    'offense_sense' : ability_data.offense_sense,
                    〜〜省略〜〜
                })
    
            skill_form = SkillEditForm(
                request.POST or None,
                initial = {
                    'player_skill' : skill_data.player_skill
                    })
    
            formation_form = FormationEditForm(
                request.POST or None,
                initial = {
                    'formation_images' : formation_data.formation_images
                    })
    
            return render(request, 'pes21/detail_edit.html', {
                'player_form' : player_form,
                'ability_form' : ability_form,
                'skill_form' : skill_form,
                'formation_form' : formation_form
            })
    
        def post(self, request, *args, **kwargs):
            player_form = PlayerEditForm(request.POST or None)
            ability_form = AbilityEditForm(request.POST or None)
            formation_form = FormationEditForm(request.POST or None)
            skill_form = SkillEditForm(request.POST or None)
    
    
            if player_form.is_valid() and ability_form.is_valid() and formation_form.is_valid() and skill_form.is_valid():
                player_data = Player.objects.get(id=self.kwargs['pk'])
                ability_data = Ability.objects.get(id=self.kwargs['pk'])
                formation_data = Formation.objects.get(id=self.kwargs['pk'])
                skill_data = Skill.objects.get(player_data=self.kwargs['pk'])          
    
                player_data.date_field = player_form.cleaned_data['date_field']
                〜〜省略〜〜
    
                ability_data.offense_sense = ability_form.cleaned_data['offense_sense']
                〜〜省略〜〜
    
                formation_data.formation_images = formation_form.cleaned_data['formation_images']
                if request.FILES.get('formation_images'):
                    formation_data.formation_images = request.FILES.get('formation_images')
    
                skill_data.player_skill = skill_form.cleaned_data['player_skill']
    
                player_data.save()
                ability_data.save()
                formation_data.save()
                skill_data.save()
    
                return redirect('detail', self.kwargs['pk'])
    
            return render(request, 'pes21/detail_edit.html', {
                'player_form' : player_form,
                'ability_form' : ability_form,
                'skill_form' : skill_form,
                'formation_form' : formation_form
            }) 
    
[/code]

**urls.py**

[code]

    from django.urls import path
    from pes21 import views
    from .views import detailview
    
    urlpatterns = [
        path('detail/<int:pk>/', detailview, name='detail'),
        path('detail/<int:pk>/edit/', views.PlayerEditView.as_view(), name='detail_edit'),
        path('category/<str:category>/', views.CategoryView.as_view(), name='category'),
    ]
    
[/code]

### 試したこと

[code]

    <form method="post" action="{% url 'detail_edit' request.player.pk %}" enctype="multipart/form-data">
    
[/code]

上記内容を実践しましたが、現在発生しているエラーが発生し、他に方法があれば、ご教示頂けると幸いです。

宜しくお願い致します。


CC BY-SA 4.0
2021-10-18T14:41:55.487
83166
2021-10-23T12:45:55.047
2021-10-23T12:45:55.047
48697
48697
question
python html django
Djangoフォームで複数保存したいが、エラーが出る: django.template.exceptions.TemplateSyntaxError: Could not parse the remainder: '`'


質問文にあるコードには含まれていませんが、どこかに `request.player.pk``
という風に書いてしまっている箇所があるはずです。末尾のバッククォートが付いてしまっているのが問題なので探し出して正しい文法に修正してみてください。


CC BY-SA 4.0
2021-10-22T08:02:42.040
83213
2021-10-22T08:02:42.040
19110
83166
answer