How to get the domain name of my site within a Django template?

If you want the actual HTTP Host header, see Daniel Roseman’s comment on @Phsiao’s answer. The other alternative is if you’re using the contrib.sites framework, you can set a canonical domain name for a Site in the database (mapping the request domain to a settings file with the proper SITE_ID is something you have to … Read more

Creating a dynamic choice field

you can filter the waypoints by passing the user to the form init class waypointForm(forms.Form): def __init__(self, user, *args, **kwargs): super(waypointForm, self).__init__(*args, **kwargs) self.fields[‘waypoints’] = forms.ChoiceField( choices=[(o.id, str(o)) for o in Waypoint.objects.filter(user=user)] ) from your view while initiating the form pass the user form = waypointForm(user) in case of model form class waypointForm(forms.ModelForm): def __init__(self, … Read more

Django TemplateSyntaxError – ‘staticfiles’ is not a registered tag library

If you have any of the following tags in your template: {% load staticfiles %} {% load static from staticfiles %} {% load admin_static %} Then replace it with: {% load static %} You have to make this change because {% load staticfiles %} and {% load admin_static %} were deprecated in Django 2.1, and … Read more

How to add url parameters to Django template url tag?

First you need to prepare your url to accept the param in the regex: (urls.py) url(r’^panel/person/(?P<person_id>[0-9]+)$’, ‘apps.panel.views.person_form’, name=”panel_person_form”), So you use this in your template: {% url ‘panel_person_form’ person_id=item.id %} If you have more than one param, you can change your regex and modify the template using the following: {% url ‘panel_person_form’ person_id=item.id group_id=3 %}

Iterate over model instance field names and values in template

model._meta.get_all_field_names() will give you all the model’s field names, then you can use model._meta.get_field() to work your way to the verbose name, and getattr(model_instance, ‘field_name’) to get the value from the model. NOTE: model._meta.get_all_field_names() is deprecated in django 1.9. Instead use model._meta.get_fields() to get the model’s fields and field.name to get each field name.