class ReportForm(ModelForm):
class Meta:
model = Report
- fields = ["title", "description", "latitude", "longitude", "category", "email"]
+ fields = ["title", "description", "latitude", "longitude", "email", "category"]
--- /dev/null
+# Generated by Django 5.1.4 on 2025-01-06 10:04
+
+import django.db.models.deletion
+from django.db import migrations, models
+
+
+class Migration(migrations.Migration):
+
+ dependencies = [
+ ('georeport', '0004_report_email_report_published'),
+ ]
+
+ operations = [
+ migrations.AddField(
+ model_name='category',
+ name='parent',
+ field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='children', to='georeport.category'),
+ ),
+ ]
class Category(models.Model):
name = models.CharField(max_length=100)
+ parent = models.ForeignKey(
+ "self",
+ on_delete=models.CASCADE,
+ related_name="children",
+ null=True,
+ blank=True,
+ )
+
+ class Meta:
+ verbose_name_plural = "Categories"
def __str__(self):
return self.name
{% block body %}
<h1>Categoriy {{ category.id }}</h1>
<p>Name: {{ category.name }}</p>
+ {% if category.parent %}
+ <p>Supercategory:<a href={{category.parent.id }}>{{category.parent}}</a></p>
+ {%endif%}
+ {% if category.children.exists %}
+ <h3>Subcategories:</h3>
+ <ul>
+ {% for child in category.children.all %}
+ <li><a href={{ child.id }}>{{child.name}} </a></li>
+ {% endfor %}
+ </ul>
+ {% endif %}
<a href="{% url 'index' %}">Back</a>
{% endblock %}
-from django.shortcuts import get_object_or_404, render, redirect
-from django.http import HttpResponseForbidden
-# Create your views here.
+from django.http import HttpResponseForbidden, JsonResponse
+from django.shortcuts import get_object_or_404, redirect, render
-from .models import Category, Report
from .forms import ReportForm
+# Create your views here.
+from .models import Category, Report
+
def index(request):
reports = Report.objects.all()