【问题标题】:Button click function Connect with postgresql按钮点击功能与postgresql连接
【发布时间】:2021-02-24 11:13:34
【问题描述】:

我是 Django 和 Python 的新手。我创建一个带有表格的网站。我想在我现有的表格中添加一个新列,点击 html 网站上的按钮。有没有人可以告诉我如何解决这个问题?谢谢 在这个链接中,我上传了我项目中的所有文件。我用pycharm、python、django写的。

【问题讨论】:

  • 请看How to Ask
  • 在 HTML 中的表格中添加一列与 django 或 python 无关。将您的问题设为 HTML、CSS 和 jquery 标记。另外,如果您有任何问题,请在这里分享一些代码!

标签: python django database postgresql


【解决方案1】:
'''    Timeline.html:
        {% extends 'blog/base.html' %}
        {% block blogContent %}
        
            {% if request.user.is_authenticated %}
            <form action="{% url 'blog:create_post' %}" method="post">
                {{ post_form }}
                {% csrf_token %}
                <button type="submit">Add message</button>
            </form>
             {% endif %}
        
        
            {% if request.user.is_authenticated %}
            <form action="{% url 'blog:create_column' %}" method="post">
                {{ column_form }}
                {% csrf_token %}
                <button type="submit">Add column</button>
            </form>
        
            {% endif %}
        
            {% if request.user.is_authenticated %}
                <form action="{% url 'blog:new_column' %}" method="post">
                    {% csrf_token %}
                    {{ newcolumn_form }}
                    <button type="submit">New column</button>
                </form>
            {% endif %}
        
        
        
            <style>
            table, th, td {
              border: 1px solid black;
              border-collapse: collapse; }
            </style>
        
        
        
            <table>
                <tr>
                    <th>ID</th>
                    <th>Message</th>
                    <th>Erstellt am</th>
                    <th>User_ID</th>
                    <th>Spalte</th>
        
                </tr>
                {% for post in posts %}
                <tr>
                    <td> {{ post.id }} </td>
                    <td> {{ post.message }} </td>
                    <td> {{ post.created_at }} </td>
                    <td> {{ post.user_id}} </td>
                    <td> {{ post.created_attt}} </td>
        
                </tr>
                {% endfor %}
            </table>
        
        {% for post in posts %}
            {% empty %}
                {% if user == request.user %}
                <p> Du hast noch keinen Eintrag verfasst</p>
                {% else %}
                <p> {{ user.username }} hat noch keinen Eintrag verfasst</p>
                {% endif %}
        {% endfor %}
        
        {% endblock %}
'''

【讨论】:

    【解决方案2】:
    '''    '''URLS.py
        from django.urls import path
        from . import views
        
        app_name = 'blog'
        urlpatterns = [
            path('', views.index, name='index'),
            path('<str:username>/timeline/', views.timeline_view, name='timeline'),
            path('create-post/', views.post_view, name='create_post'),
            path('create-column/', views.column_view, name='create_column'),
            path('new-column/', views.newcolumn_view, name='new_column'),
        ]
        
        models.py:
        from django.contrib.auth.models import User
        from django.db import models
        from django.utils import timezone
        
        
        class BlogPost (models.Model):
            user = models.ForeignKey(User, on_delete=models.CASCADE)
            message = models.CharField(max_length=250)
            created_at = models.DateTimeField(default=timezone.now)
            created_attt = models.CharField(max_length=222, default='')
        
        
        views.py:
        import logging
        
        from django.contrib.auth.decorators import login_required
        from django.contrib.auth.models import User
        from django.http import HttpResponseRedirect
        from django.shortcuts import render, get_object_or_404
        from django.urls import reverse
        from django.views.decorators.http import require_POST
        from .forms import PostForm, CreateForm, NewColumnForm
        from .models import BlogPost
        
        def index(request):
            return render(request, 'blog/base.html')
        
        def timeline_view(request, username):
            post_form = PostForm()
            column_form = CreateForm()
            newcolumn_form = NewColumnForm()
            user = get_object_or_404(User, username=username)
            posts = BlogPost.objects.filter(user=user).order_by('-created_at')
            return render(request, 'blog/timeline.html', {'posts': posts, 'post_form': post_form, 'column_form': column_form, 'user': user, 'newcolumn_form': newcolumn_form})
        
        @login_required
        @require_POST
        def post_view(request):
            post_form = PostForm(request.POST)
            logging.debug(post_form)
            if post_form.is_valid():
                post = post_form.save(commit=False)
                post.user = request.user
                post.save()
            return HttpResponseRedirect(reverse('blog:timeline', kwargs={'username': request.user.username}))
        
        @login_required
        @require_POST
        def column_view(request):
            column_form = CreateForm(request.POST)
            if column_form.is_valid():
                createcolumn = column_form.save(commit=False)
                createcolumn.user = request.user
                createcolumn.save()
            return HttpResponseRedirect(reverse('blog:timeline', kwargs={'username': request.user.username}))
        
        @login_required
        @require_POST
        def newcolumn_view(request):
            newcolumn_form = CreateForm(request.POST)
            if newcolumn_form.is_valid():
                newcolumn = newcolumn_form.save(commit=False)
                newcolumn.user = request.user
                newcolumn.save()
            return HttpResponseRedirect(reverse('blog:timeline', kwargs={'username': request.user.username}))
        
        
        
        
        
        
        
        
        
        
        
        
        
    '''
    

    【讨论】:

      【解决方案3】:
      ''' forms.py :
          from django import forms
          
          from .models import BlogPost
          
          
          class PostForm(forms.ModelForm):
              class Meta:
                  model = BlogPost
                  fields = ['message', ]
                  labels = {
                      'message': 'Nachricht',
          
                  }
          
          
          class CreateForm(forms.ModelForm):
              class Meta:
                  model = BlogPost
                  fields = ['created_attt', ]
                  labels = {
                      'created_attt': 'Spalte',
                  }
          
          
          class NewColumnForm(forms.ModelForm):
              class Meta:
                  model = BlogPost
                  exclude = []
                  fields = ['created_attt', ]
                  labels = {
                      'created_attt': 'Neue Spalte',
                  }
          
          
      '''
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2019-02-09
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2023-03-30
        相关资源
        最近更新 更多