如何单独存储用户评论到数据库



我正在尝试将用户评论存储到单独的数据库表。例如,有两个图像(例如Image1和Image2(,如果用户对Image1的评论我想将用户注释存储到Image1表中。如果有人评论存储在Image2表中的Image2数据。如何做到这一点,请帮助我。

view.py

def review(request):
    address = request.session['address']
    image1 = Offers.objects.filter(address=address)
    image2 = Ads.objects.filter(address=address)
    if 'username' in request.session:
        if request.method == 'POST':
            form = Comments(request.POST)
            if form.is_valid():
                review = request.POST.get('review')
                id = request.POST.get('id_off')
                dt = datetime.now().strftime('%Y-%m-%d %H:%M:%S')
                result1 = Image1(review=review, id= id, date_time= dt)
                result2 = Image2(review=review, id= id, date_time= dt)
                result1.save()
                result2.save()
                return render(request, 'index.html', {'image1': image1, 'image2': image2})
            return redirect('/review/')
        return redirect('/review/')
    return redirect('/review/')

index.html

{% for item in image1 %}
              <div class="col-md-4">
                  <div class="divi" style="height: 910px">
                    <img src="{{ item.image.url }}" alt="Images" width="300px" height="200px"/>
                    <p>From Date: {{ item.from_date }}</p>
                    <p>TO Date: {{ item.to_date }}</p>
                    <p>Description: {{ item.description }}</p>
                    <p>Address: {{ item.address }}</p>
                  <!--if this ids ad:
                    <form method="post" action="#">
                        elif:-->
                        <form method="post" action="#">
                        {% csrf_token %}
                        <input type="text" name="id_off" value="{{ item.id }}" style="display: none">
                        <input type="text" name="review">
                        <button type="submit">Send Review</button>
                    </form>
                </div>
              </div>
        {% endfor %}
            </br>
        {% for items in image2 %}
            <div class="col-md-4">
                <div class="divi" style="height: 410px">
            <img src="{{ items.image.url }}" alt="Images" width="300px" height="200px"/>
                    <p>Description: {{ items.description }}</p>
                    <p>Address: {{ items.address }}</p>
                    <p>id: {{ items.id }}</p>
                    <form method="post" action="#">
                        {% csrf_token %}
                        <input type="text" name="id_off" value="{{ items.id }}" style="display: none">
                        <input type="text" name="review">
                        <button type="submit">Send Review</button>
        </form>
                </div>
              </div>
        {% endfor %}

urls.py

urlpatterns = [
    path('review/', views.review, name="review"),
]

假设您有Image模型

class Image(models.Model):
    file=models.ImageField()

Comment模型

class Comment(models.Model):
    comment=models.CharField(max_length=150)

您可以使用Foreignkey来定义图像对象和注释之间的关系

class Comment(models.Model):
    image = models.ForeignKey(Image, on_delete=models.CASCASE)
    comment=models.CharField(max_length=150)

因此,每个图像对象都可以有多个注释

最新更新