**** добавлен профиль просмотра пользователей в разделе url.py плюс мои пользователи view.py ***
Эй, ребята, я пытался спросить это несколько раз, но не думаю, что я был достаточно тщателен теперь я пробовал так много разных способов, за последние несколько дней было интересно, сможет ли кто-нибудь указать мне правильное направление. Я хочу, чтобы имена пользователей, используемые в post.post, превращались в ссылки для этого профиля пользователя. сейчас это вывод, который я получаю.
ссылка на то, как выглядит мой post.post
. Как вы видите, я получаю имя пользователя в сообщении, но оно не отображается как ссылка на профиль этого пользователя. он просто показывает в виде обычного текста, что я хотел бы, чтобы @devil была ссылкой на профиль пользователя ... в конце, хотя система обнаруживает, что @devil является пользователем в базе данных, она просто не показывает его как ссылка в моем шаблоне внешнего интерфейса
Это мой views.py, который я использую, чтобы сервер нашел любого пользователя в post.post
def get(self, request):
form = HomeForm()
posts = Status1.objects.filter(user=request.user).order_by('-id')
users = User.objects.all()
args = {'form':form, 'posts':posts, 'users':users}
return render(request, self.template_name, args)
def post(self, request):
form = HomeForm(request.POST)
users = User.objects.all()
if form.is_valid():
post = form.save(commit=False)
post.user = request.user
post.save()
for username in post.post.split():
if username.startswith("@"):
user = User.objects.get(username=username)
username = user
print(username) #THIS PRINTS THE USERNAME IN THE TERMINAL SO THAT I KNOW IT'S PARSING THE POST FOR USERS MENTIONED IN THE POST WHEN SUBMITTED
text = form.cleaned_data['post']
form = HomeForm()
return redirect('home')
context = {'form': form, 'text': text, 'users':users, 'username':username}
return render(request, self.template_name, context)
Это шаблон внешнего интерфейса I Я использую, чтобы показать информацию, как показано выше для post.post. Я не уверен, как я go сказал шаблону, что любое имя пользователя, начинающееся с @, должно быть ссылкой на профиль пользователя, так как он получает информацию post.post из базы данных.
{% for post in posts %}
{{ post.post}}
{% endfor %}
Это мой models.py
from django.db import models
from django.contrib.auth.models import User
class Status1(models.Model):
post = models.CharField(max_length=333)
user = models.ForeignKey(User, on_delete=models.CASCADE)
date = models.DateTimeField(auto_now=True)
blockchain = models.TextField()
, а это мой urls.py
urlpatterns = [
url(r'^$', HomeView.as_view(), name='home'),
#path('', HomeView, name='home'),
path('register/', user_views.register, name='register'),
path('profile/', user_views.profile, name='profile'),
path('admin/', admin.site.urls),
path('login/', auth_views.LoginView.as_view(template_name='users/login.html'), name='login'),
path('logout/', auth_views.LogoutView.as_view(template_name='users/logout.html'), name='logout'),
]
Это мой views.py для пользователей
def register(request):
if request.method == 'POST':
form = UserRegisterForm(request.POST)
if form.is_valid():
form.save()
username = form.cleaned_data.get('username')
messages.success(request, f'Welcome {username}!')
return redirect('login')
else:
form = UserRegisterForm()
return render(request, 'users/register.html', {'form': form})
def profile(request):
return render(request, 'users/profile.html')
Я бился головой об этом, я не могу понять это, большое спасибо за всех, кто помогает