Added Modelform for place creation. Shabbily templated / not designed.
This commit is contained in:
parent
ec308a7428
commit
2efb198f72
@ -1,9 +1,8 @@
|
|||||||
from django import forms
|
from django import forms
|
||||||
from django.contrib.auth.forms import UserCreationForm, UserChangeForm
|
from django.contrib.auth.forms import UserCreationForm, UserChangeForm
|
||||||
from .models import Explorer
|
from .models import Explorer, Place
|
||||||
|
|
||||||
class ExplorerCreationForm(UserCreationForm):
|
class ExplorerCreationForm(UserCreationForm):
|
||||||
|
|
||||||
class Meta:
|
class Meta:
|
||||||
model = Explorer
|
model = Explorer
|
||||||
fields = ('username', 'email')
|
fields = ('username', 'email')
|
||||||
@ -13,3 +12,9 @@ class ExplorerChangeForm(UserChangeForm):
|
|||||||
class Meta:
|
class Meta:
|
||||||
model = Explorer
|
model = Explorer
|
||||||
fields = ('username', 'email')
|
fields = ('username', 'email')
|
||||||
|
|
||||||
|
class PlaceForm(forms.ModelForm):
|
||||||
|
class Meta:
|
||||||
|
model = Place
|
||||||
|
fields = '__all__'
|
||||||
|
exclude = ['submitted_by']
|
||||||
|
@ -0,0 +1,20 @@
|
|||||||
|
# Generated by Django 3.0.8 on 2020-07-29 16:29
|
||||||
|
|
||||||
|
from django.conf import settings
|
||||||
|
from django.db import migrations, models
|
||||||
|
import django.db.models.deletion
|
||||||
|
|
||||||
|
|
||||||
|
class Migration(migrations.Migration):
|
||||||
|
|
||||||
|
dependencies = [
|
||||||
|
('lostplaces_app', '0001_initial'),
|
||||||
|
]
|
||||||
|
|
||||||
|
operations = [
|
||||||
|
migrations.AddField(
|
||||||
|
model_name='place',
|
||||||
|
name='submitted_by',
|
||||||
|
field=models.ForeignKey(null=True, on_delete=django.db.models.deletion.SET_NULL, to=settings.AUTH_USER_MODEL),
|
||||||
|
),
|
||||||
|
]
|
@ -18,6 +18,7 @@ class Explorer(AbstractUser):
|
|||||||
# Place defines a lost place (location, name, description etc.).
|
# Place defines a lost place (location, name, description etc.).
|
||||||
class Place (models.Model):
|
class Place (models.Model):
|
||||||
name = models.CharField(max_length=50)
|
name = models.CharField(max_length=50)
|
||||||
|
submitted_by = models.ForeignKey(Explorer, on_delete=models.SET_NULL, null=True, blank=True, related_name='places')
|
||||||
location = models.CharField(max_length=50)
|
location = models.CharField(max_length=50)
|
||||||
latitude = models.FloatField()
|
latitude = models.FloatField()
|
||||||
longitude = models.FloatField()
|
longitude = models.FloatField()
|
||||||
|
15
lostplaces/lostplaces_app/templates/create_place.html
Normal file
15
lostplaces/lostplaces_app/templates/create_place.html
Normal file
@ -0,0 +1,15 @@
|
|||||||
|
{% extends 'global.html'%}
|
||||||
|
{% load static %}
|
||||||
|
|
||||||
|
# {% block title %}Place erstellen{% endblock %}
|
||||||
|
|
||||||
|
{% block maincontent %}
|
||||||
|
|
||||||
|
<h2>Place erstellen</h2>
|
||||||
|
<form method="post">
|
||||||
|
{% csrf_token %}
|
||||||
|
{{ form.as_p }}
|
||||||
|
<button type="submit">Abschicken</button>
|
||||||
|
</form>
|
||||||
|
|
||||||
|
{% endblock maincontent %}
|
@ -1,9 +1,10 @@
|
|||||||
from django.urls import path
|
from django.urls import path
|
||||||
from .views import hello_world, place_detail_view, place_list_view, SignUpView
|
from .views import hello_world, place_detail_view, place_list_view, SignUpView, PlaceEditView
|
||||||
|
|
||||||
urlpatterns = [
|
urlpatterns = [
|
||||||
path('hello_world/', hello_world), # You know what this is :P
|
path('hello_world/', hello_world), # You know what this is :P
|
||||||
path('signup/', SignUpView.as_view(), name='signup'),
|
path('signup/', SignUpView.as_view(), name='signup'),
|
||||||
path('place/<int:pk>/', place_detail_view, name='place_detail'),
|
path('place/<int:pk>/', place_detail_view, name='place_detail'),
|
||||||
path('places/', place_list_view)
|
path('place/create/', PlaceEditView.as_view(), name='place_create'),
|
||||||
|
path('place/', place_list_view)
|
||||||
]
|
]
|
@ -1,8 +1,9 @@
|
|||||||
from django.shortcuts import render
|
from django.shortcuts import render, redirect
|
||||||
from django.urls import reverse_lazy
|
from django.urls import reverse_lazy
|
||||||
from django.views.generic.edit import CreateView
|
from django.views.generic.edit import CreateView
|
||||||
|
from django.views import View
|
||||||
|
|
||||||
from .forms import ExplorerCreationForm
|
from .forms import ExplorerCreationForm, PlaceForm
|
||||||
from .models import Place
|
from .models import Place
|
||||||
|
|
||||||
# Create your views here.
|
# Create your views here.
|
||||||
@ -20,3 +21,18 @@ def place_detail_view(request, pk):
|
|||||||
|
|
||||||
def hello_world(request):
|
def hello_world(request):
|
||||||
return render(request, 'hello_world.html', {'text':'Hello World!'})
|
return render(request, 'hello_world.html', {'text':'Hello World!'})
|
||||||
|
|
||||||
|
class PlaceEditView(View):
|
||||||
|
def get(self, request, *args, **kwargs):
|
||||||
|
place_form = PlaceForm()
|
||||||
|
return render(request, 'create_place.html', {'form':place_form})
|
||||||
|
def post(self, request, *args, **kwargs):
|
||||||
|
place_form = PlaceForm(request.POST)
|
||||||
|
if place_form.is_valid() == True:
|
||||||
|
instance = place_form.save(commit=False)
|
||||||
|
# Save logged in user as "submitted_by"
|
||||||
|
instance.submitted_by = request.user
|
||||||
|
instance.save()
|
||||||
|
return redirect(reverse_lazy('place_detail', kwargs={'pk':instance.pk}))
|
||||||
|
else:
|
||||||
|
return render(request, 'create_place.html', {'form':place_form})
|
||||||
|
Loading…
Reference in New Issue
Block a user