2
I found a better way to solve the problem by adding additional function in the models.py
file
models.py
def tags_list(self):
return self.tags.split(',')
template.html
{% for tag in tags_list %}
<p>{{ tag }}</p>
{% endfor %}
simple and easy!
0
In your view, split the comma value CharField
field like this:
class ProfileView(CanEditMixin, UserPassesTestMixin, DetailView):
template_name = "profile/profile_view.html"
queryset = User.objects.all()
context_object_name = 'profile'
slug_field = "username"`
def get_context_data(self, **kwargs):
context = super().get_context_data(**kwargs) # get parent context
# the model here should be replaced with the object that has the "tag" attribute. DO NOT use the "model" word.
# Try self.object.tag.split(',')
tag_list = model.tag.split(',') # conversion from a string to a list
context['tag_list'] = tag_list # add to the context the tag_list list
return context
and then in your template simply iterate over it:
{% for tag in tag_list %}
<p>{{ tag }}</p>
{% endfor %}
- [Answered ]-Notify user about bounced confirmation emails
- [Answered ]-Django which is the correct way to store discussion inside db?
- [Answered ]-How to remove the ?q= from the url in Django
0
The correct way works, but I would use the list
built-in method to just change the string from array.
class MyModel(models.Model):
string_array = models.CharField(max_length=100)
def pass_to_list(self):
return list(self.string_array)
Notes:
- Remember that your string array must be an actual array on the database, with ‘[‘ and everything
- This way works by taking use of the built-in
list
method, but you can also just return the string splitted by commas
- [Answered ]-Putting a click event for a dialogue box with Django Tables2
- [Answered ]-Django Heroku DataError when populating database from script
- [Answered ]-Django Generic View Model Filtering
Source:stackexchange.com