<pre><code>from django.db import models
from user_profile.models import User
class Post(models.Model):
# postad_category = models.ForeignKey(Category)
# postad_name = models.CharField(max_length=250)
user = models.ForeignKey(User)
text = models.CharField(max_length=300)
created_date = models.DateTimeField(auto_now=True)
country = models.CharField(max_length=30, default="Global")
# postad_logo = models.CharField(max_length=1000)
is_active = models.BooleanField(default=True)
is_favorite = models.BooleanField(default=False)
def __str__(self):
# This should be text, not name.
return self.text
class HashTag(models.Model):
"""HashTag model"""
name = models.CharField(max_length=64, unique=True)
post = models.ManyToManyField(Post)
def __str__(self):
return self.name
# Sometimes get or create dosnt work properly
from django.shortcuts import render
from django.core.exceptions import ObjectDoesNotExist
class PostPost(View):
"""Post - post form available on page /user/<username> URL"""
def post(self, request, username):
form = PostForm(self.request.POST)
if form.is_valid():
# post = form.save(commit = False)
# post.user = request.user
user = User.objects.get(username=username)
post = Post(text=form.cleaned_data['text'],
user=user,
# country=form.cleaned_data['country']
)
post.save()
words = form.cleaned_data['text'].split(" ")
for word in words:
if word[0] == "#":
try:
hashtag = HashTag.objects.get(name=word[1:])
created = False
except ObjectDoesNotExist:
hashtag, created= HashTag.objects.create(name=word[1:])
print(hashtag,'\n', created)
hashtag.post.add(post)
return HttpResponseRedirect('/user/'+username)
</code></pre>