我已经发布了一个Android应用程序,您可以在其中查看特定对象的列表以及有关它们的详细信息.列表每天都会更改,但某些对象可能会再次出现.应用程序通过HTTP与PHP服务器通信,并定期提取对象列表.
我现在计划扩展应用程序,使其能够评价的对象,并添加评论类似于它是如何在Android市场完成的.我想避免强迫用户注册帐户以便发表评论.
我看到两个问题:
所以我的问题是:
我正在开发一个类似于Disqus的东西,我创建了一个第三方javascript片段,用户将在该网站中嵌入并为每篇文章设置评级小部件.用户可以使用小部件对文章进行评级.一切正常,服务器正在发出请求,但我明确地制作了文章对象实例.
我需要自动执行此操作,例如网站上的新文章,检查请求来自经过身份验证的网站,并在Django和Django-rest-framework中的数据库中创建新的评级小部件.
我使用的是Python 2.7.
问题:如果新文章的新标题和数据库中的身份验证,如何自动保存新文章的标题?
我知道我需要使用模型来实现这一点,但我不确定如何进行实际实现.
编辑:
假设这是查询
https://example.com/embed/comments/?base=default&version=edb619270a92c3035c453faa7c9444d1&f=example&t_i=article_2431522&t_u=http%3A%2F%2Fwww.firstpost.com%2Fbollywood%2Flatest-trailer-of-spectre-is-out-james-bond-is-back-all-guns-and-cars-blazing-2431522.html%09&t_e=Latest%20trailer%20of%20%27Spectre%27%20is%20out%3A%20James%20Bond%20is%20back%20all%20guns%20and%20cars%20blazing&t_d=Latest%20trailer%20of%20%27Spectre%27%20is%20out%3A%20James%20Bond%20is%20back%20all%20guns%20and%20cars%20blazing&t_t=Latest%20trailer%20of%20%27Spectre%27%20is%20out%3A%20James%20Bond%20is%20back%20all%20guns%20and%20cars%20blazing&s_o=default
在我的模型,我需要将以下保存,如f以forum(其中forum=models.CharField("short name", max_length=30, unique=True)
我知道我需要解析每个网址&,但不知道如何.我检查了rest-framework的文档,但我没有得到它的要点.
`f ---->forum,
t_i----> identifier,
t_u----> url
t_s----> slug,
t_e----> title,
t_d----> documentTitle,
t_t----> title || documentTitle,
t_c ---->category,
s_o----> sortOrder,
l----> language`
Run Code Online (Sandbox Code Playgroud)
保存的最佳做法是什么?希望这可以帮助
javascript django django-models rating-system django-rest-framework
对于今年的学生会,我在"歌曲"委员会,我们选择歌曲.不幸的是,舞蹈中的孩子总是讨厌一些愚蠢的歌曲选择.我想我今年可能会有所不同.上周四,我创建了一个简单的PHP应用程序,以便孩子们可以将歌曲提交到数据库中,提供歌曲名称,艺术家和流派(来自下拉列表).我还实现了类似于Reddit的投票功能.单击一个upvote按钮,您已经对该歌曲进行了投票,增加了upvote计数.与downvotes相同.
Anywho,在数据库中,我有三个信息,我认为我可以使用它来评价这些歌曲,upvotes,downvotes和时间戳.有一段时间,排名是通过简单地将具有较高"投票"计数的歌曲放在顶部而创建的.也就是说,更多的投票,更少的downvotes(upvotes - downvotes)将位于列表的顶部.这种情况有一段时间了,但截至周日列表中大约有75首歌曲,首先提交的歌曲只是在列表的顶部.
周日,我将等级算法更改为(upvotes - downvotes)/(CurrentTimestamp - CreationTimestamp),也就是说,在较短的时间内投票计数越高,列表中的歌曲就越高.这工作得更好,但仍然不是我喜欢它.
现在发生的事情是,一首歌创建并投票到1的投票数,它最终会在某个地方的列表顶部.有负面投票计数的歌曲不经常被看到,因为孩子通常不会滚动到底部.
我想我可以对数据进行排序,以便较低的歌曲显示在顶部,因此人们不得不看到较低的歌曲.老实说,我以前从未使用过"流行度"算法,所以,你有什么想法?
网站http://www.songs.taphappysoftware.com - 我不知道我是否应该把这个放在这里,可能会在舞会上引起一些不受欢迎的歌曲:0
我从PHPClasses网站获得了以下ELO课程.
<?php
class elo_calculator {
public function rating($S1, $S2, $R1, $R2) {
if(empty($S1) or empty($S2) or empty($R1) or empty($R2))
return null;
if($S1 != $S2) {
if($S1 > $S2) {
$E = 120 - round(1 / (1 + pow(10, (($R2 - $R1) / 400))) * 120);
$R['R3'] = $R1 + $E;
$R['R4'] = $R2 - $E;
} else {
$E = 120 - round(1 / (1 + pow(10, (($R1 - $R2) / 400))) * 120);
$R['R3'] = $R1 - $E;
$R['R4'] …Run Code Online (Sandbox Code Playgroud) 我在网站上实现了一个简单的上/下投票系统,我跟踪个人投票以及投票时间和唯一用户iD(散列IP).
我的问题不是如何计算投票的百分比或总和 - 更重要的是,根据投票确定好分数的好算法是什么?
我发现按纯投票百分比排序是不可接受的,以及简单地计算upvotes.
考虑这个例子:
理想的系统将A放在第一位,然后是B,然后是C.
在纯百分比方案中,订单为C> A> B.(错误)在纯投票计数方案中,订单为B> A> C.(错误)
我有一个基于系统对分数的信心的"混合"算法的想法,可能是这样的:
// (if totalvotes > 0, else score = 0)
score = 1 - ((downvotes+1 / totalvotes+1) * sqrt(1 / totalvotes))
Run Code Online (Sandbox Code Playgroud)
但是,在我从现在开始调整算法到日落之前,我希望向社群询问是否有任何我已经知道的非常明确的算法,我根本就不知道.
我也有每个投票的日期数据 - 但是,网站的内容不是非常时间敏感,所以我真的不在乎"什么是热点".
我一直在研究各种评级系统.我找到了一些很好的,如Elo评级系统和Glicko评级系统.但所有这些系统都是为涉及2个竞争对手的游戏而设计的.(国际象棋,去)
我想知道是否有任何算法可用于涉及N个玩家的游戏,或者如果有上述方法,可以扩展系统以支持N个玩家游戏.
这是我到目前为止找到的壁橱:http: //sradack.blogspot.com/2008/06/elo-rating-system-multiple-players.html
我已经下载了这个教程http://megarush.net/5-star-rating-system-with-php-mysql-jquery-and-ajax/但是我收到了这些错误:
注意:未定义的变量:第37行的C:\ xampp\htdocs\rating\rating.php中的rat
注意:未定义的变量:第41行的C:\ xampp\htdocs\rating\rating.php中的v
<?php
include("settings.php");
connect();
$ids=array(1,2,3);
?>
<html>
<head>
<script src="jquery.js" type="text/javascript"></script>
<link rel="stylesheet" href="rating.css" />
<script type="text/javascript" src="rating.js"></script>
</head>
<body>
<?php
for($i=0;$i<count($ids);$i++)
{
$rating_tableName = 'ratings';
$id=$ids[$i];
$q="SELECT total_votes, total_value FROM $rating_tableName WHERE id=$id";
$r=mysql_query($q);
if(!$r) echo mysql_error();
while($row=mysql_fetch_array($r))
{
$v=$row['total_votes'];
$tv=$row['total_value'];
$rat=$tv/$v;
}
$j=$i+1;
$id=$ids[$i];
echo'<div class="product">
Rate Item '.$j.'
<div id="rating_'.$id.'" class="ratings">';
for($k=1;$k<6;$k++){
if($rat+0.5>$k)$class="star_".$k." ratings_stars ratings_vote";
else $class="star_".$k." ratings_stars ratings_blank";
echo '<div class="'.$class.'"></div>';
}
echo' <div class="total_votes"><p class="voted"> Rating: <strong>'.@number_format($rat).'</strong>/5 ('.$v. ' …Run Code Online (Sandbox Code Playgroud) 在我的项目中,我想使用评级系统http://www.jqueryrain.com/?SGgGB_oZ我已成功将其添加到我的项目中,并且可以正常工作。我有 2 个模型:赌场和评级。赌场has_many :ratings和评级belongs_to :casino。在我的赌场索引页面上,我想显示每个赌场的评级系统。这是我的观点:
<h1>List of casinos</h1>
<div class="casinos-list">
<% @casinos.each do |casino| %>
<div class="casino-item">
<p class="casino-name"><%= link_to casino.name, casino %></p>
<p class="casino-description"><%= casino.description %></p>
<ul class="rating">
<% form_id = "casino_#{casino.id}_rating" %>
<%= form_for casino.ratings.last || casino.ratings.build, html:
{ id: "casino_#{casino.id}_rating", class: 'star_rating_form' } do |f| %>
<%= f.hidden_field :casino_id %>
<%= f.hidden_field :score, id: "#{form_id}_stars", class: 'star-value' %>
<% end %>
</ul>
<div id="<%= "average_rating_#{form_id}" %>"><%= casino.average_rating.to_f %></div>
<div id="<%= "rate_#{casino.id}" …Run Code Online (Sandbox Code Playgroud) 目前我正在为网上商店制作评级系统。基本上我希望它如何工作:
如果访问者以前从未评价过:
我使用的字体很棒,所以我没有使用任何图像。现在的问题是,如果我将鼠标悬停在一颗星星上,它可以工作,但如果我想从一颗星星移动到另一颗星星,它就会出现故障(因为星星之间有一点间隙,这意味着它会先重置星星)。
jsfiddle:https ://jsfiddle.net/uappvz3y/
JS:
var current_star_statusses = [];
star_elements = $('.fa-star');
star_elements.each(function(i, elem)
{
current_star_statusses.push($(elem).hasClass('yellow'));
});
star_elements.mouseenter(changeRatingStars);
star_elements.mouseleave(resetRatingStars);
/**
* Changes the rating star colors when hovering over it.
*/
function changeRatingStars()
{
// Current star hovered
var star = $(this);
// Removes all colors first from all stars
$('.fa-star').removeClass('gray').removeClass('yellow');
// Makes the current hovered star yellow
star.addClass('yellow');
// Makes the previous stars yellow and the next stars gray
star.parent().prevAll().children('.fa-star').addClass('yellow');
star.parent().nextAll().children('.fa-star').addClass('gray');
}
/** …Run Code Online (Sandbox Code Playgroud)